簡體   English   中英

無法讀取來自 kafka 主題的最新消息

[英]Can't Read the latest Messages from kafka topic

我正在使用 Kafka 的 Spotify docker 版本。 我現在有一個生產者、一個經紀人和一個消費者。

問題是使用這種配置我無法從 Kafka 獲取最新消息。 如果我默認為auto_offset_reset='earliest'那么我會收到所有消息。

這是我的消費者代碼,即使那里有新消息,它也不會從 Kafka 打印任何消息。

def consumer():
consumer = KafkaConsumer('stories',
                         enable_auto_commit=False,
                         value_deserializer=lambda m: json.loads(m.decode('ascii')),
                         bootstrap_servers=['127.0.0.1:9092'],
                         auto_offset_reset='latest',
                         consumer_timeout_ms=1000
                         )

for message in consumer:
    # message value and key are raw bytes -- decode if necessary!
    # e.g., for unicode: `message.value.decode('utf-8')`
    print("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                         message.offset, message.key,
                                         message.value))

有人可以幫助我並讓我知道問題出在哪里嗎?

我只是想從 Kafka 獲取消費者未讀取的消息。

這是 Kafka 消費者: https : //hastebin.com/umuhugacez.py

這是 Kafka Producer: https : //hastebin.com/laderolawi.py

只是一個更新:從 Kafka 0.9 開始,Kafka 使用了新的 Java 版本的消費者,並且 auto.offset.reset 參數名稱發生了變化; 從手冊:

auto_offset_reset 在你的代碼中是錯誤的應該是最早的。

最早:自動將偏移量重置為最早的偏移量

最新:自動將偏移量重置為最新的偏移量

none:如果沒有找到消費者組的先前偏移量,則向消費者拋出異常

其他任何事情:向消費者拋出異常。

我也遇到過這個問題。 無論消費者的設置如何,當我嘗試進行視頻流時,它總是用於緩沖數據。 我的情況是通過在定義消費者后尋求結束的偏移量來解決的。 您可以嘗試添加

consumer.poll() 
consumer.seek_to_end()

暫無
暫無

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

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