簡體   English   中英

Confluent Kafka Python 庫為批量 msg 配置生產者

[英]Confluent Kafka Python library configure producer for bulk msg

我需要設置 Kafka 生產者以批量發送 500 條消息,而不是按消息發送,而是批量導入。 我檢查了https://github.com/dpkp/kafka-python/issues/479並嘗試了producer.send_messages(topic, *message)但它失敗並出現錯誤:

>       producer.send_messages('event_connector_mt', *load_entries)
E       AttributeError: 'cimpl.Producer' object has no attribute 'send_messages'

我也試圖通過它像producer.produce(topic, *message)失敗:

       producer.produce('event_connector_mt', *load_entries)
E       TypeError: function takes at most 8 arguments (501 given)

所以我挖了更多,發現我必須在生產者配置中設置類型為 async 和 batch.size 大於默認值,但是當我嘗試配置時:

from confluent_kafka import Consumer, Producer       

producer = Producer(**{'bootstrap.servers': KAFKA_BROKERS,
                       'queue.buffering.max.messages': 1000000,
                       'batch.num.messages': 500,
                       'batch.size': 19999,
                       'producer.type': 'async'
                       })

失敗:

E       KafkaException: KafkaError{code=_INVALID_ARG,val=-186,str="No such configuration property: "producer.type""}

batch.size 的相同錯誤你能告訴我在哪里以及如何設置異步和批處理大小或任何其他方式將批量消息傳遞給 Kafka 0.9.3.1

默認情況下,所有生產者都是異步的。 底層 librdkafka 庫不支持 Producer.type 和 batch.size 配置。

因此,請使用可用的配置 batch.num.messages 或 message.max.bytes。

您正在混淆名為“confluent-kafka-python”的 Confluent python 客戶端

http://docs.confluent.io/3.2.1/clients/confluent-kafka-python/

使用“kafka-python”客戶端

https://github.com/dpkp/kafka-python

這是兩個具有不同 API 的不同客戶端。

暫無
暫無

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

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