簡體   English   中英

卡夫卡消費者不消費主題產生的數據

[英]Kafka consumer not consuming the data produced into topic

我必須創建一個生成從 1 到 300 的數字序列的 kafka 生產者。我寫的每條消息都必須包含有關主題的信息、一個鍵和一個值,該值是要寫入的值的二進制值。

這是我創建的代碼:

from kafka import KafkaProducer
import numpy as np
import time

producer = KafkaProducer(bootstrap_servers='Cloudera02:9092')

for i in range(1,300):
    value = bytes(str(i), 'utf-8')
    key = (str(i), 'utf-8')
    producer.send('PEC5', key = key, value = value)
    time.sleep(3) 
producer.flush()

kafka 消費者應該讀取生產者並僅在控制台中顯示值。

from kafka import KafkaConsumer
from codecs import utf_8_decode

consumer = KafkaConsumer('PEC5', bootstrap_servers='Cloudera02:9092', auto_offset_reset='smallest', consumer_timeout_ms=10000)

for message in consumer:
    for value in message.values:
        print(value)

我正在運行 2 個終端,一個用於生產者,第二個用於消費者,但我沒有在控制台中打印任何內容。 知道出了什么問題嗎?

KafkaConsumer中的auto_offset_reset值是錯誤的,從文檔來看它只有latestearliest的兩個有效值,任何其他值都會引發異常

auto_offset_reset (str) – 重置 OffsetOutOfRange 錯誤偏移量的策略:“最早”將移動到最舊的可用消息,“最新”將移動到最新消息。 任何其他值都會引發異常。 默認值:“最新”。

所以earliest構造KafkaConsumer

consumer = KafkaConsumer('PEC5', bootstrap_servers='Cloudera02:9092', auto_offset_reset='earliest', consumer_timeout_ms=10000)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM