簡體   English   中英

如何在融合的kafka python中讀取批處理消息?

[英]How to read batch messages in confluent kafka python?

我試圖讀取來自Kafka的消息,所以我寫了一個簡單的使用者來讀取來自Kafka的消息。

While True:
        message = consumer.poll(timeout=1.0)
        # i am doing something with messages

在上面的代碼中,消息類型的輸出是消息對象。 如何獲得一系列消息?

有沒有可能??

注意:僅基本的使用者配置不是很多。

librdkafka(底層C庫)僅將消息逐條返回給應用程序,但是在內部,消息是從代理中批量獲取的,因此不會降低性能。 郵件在內部緩沖區中排隊,等待您的應用程序輪詢。

有一些配置可以調整行為:

fetch.wait.max.ms (默認為100),代理累積數據以發送fetch.message.max.bytes (默認fetch.message.max.bytes ),已queued.max.messages.kbytes的批處理的最大大小queued.max.messages.kbytes (默認值) 1000000),內部隊列中數據的最大大小。 如果您不定期輪詢,則不會從隊列中清除數據,也無法再獲取任何數據。

您可以在這里找到許多其他內容: https : //github.com/edenhill/librdkafka/blob/0.11.0.x/CONFIGURATION.md


如果您真的因為處理數據的方式而需要數據數組,則可以執行的操作是像在循環中那樣以低超時調用輪詢,並在收到x條消息或y ms之后停止循環,並在其中累積它們集合。 處理生成的數組並重復循環。

產生的過程也一樣:您一一產生數據,但是在將消息發送給代理之前先對其進行批處理。

暫無
暫無

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

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