[英]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
值是錯誤的,從文檔來看它只有latest
和earliest
的兩個有效值,任何其他值都會引發異常
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.