[英]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.