簡體   English   中英

kafka-python:我無法運行示例生產者代碼

[英]kafka-python: I am unable to run the example producer code

我在 Google Cloud VM 上創建了 Kafka 集群首先,我使用 cli 命令測試了我的代理以生成消息:生產者:

$ kafka-console-producer.sh --broker-list localhost:9092 --producer.config /opt/bitnami/kafka/conf/producer.properties --topic lus_topic
>abc

消費者成功收到:

$ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic lus_topic --consumer.config /opt/bitnami/kafka/conf/consumer.properties --from-beginning
abc

然后我嘗試使用帶有cli消費者的kafka-python生產者來檢索主題

Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from kafka import KafkaProducer
>>> producer = KafkaProducer(bootstrap_servers='localhost:9092')        
>>> producer.send('lus_topic', b'Hello, World!').get(timeout=30)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/lumo_gftdevgcp_com/.local/lib/python3.7/site-packages/kafka/producer/kafka.py", line 576, in send
    self._wait_on_metadata(topic, self.config['max_block_ms'] / 1000.0)
  File "/home/lumo_gftdevgcp_com/.local/lib/python3.7/site-packages/kafka/producer/kafka.py", line 703, in _wait_on_metadata
    "Failed to update metadata after %.1f secs." % (max_wait,))
kafka.errors.KafkaTimeoutError: KafkaTimeoutError: Failed to update metadata after 60.0 secs.

你能幫我解釋為什么我會收到這個超時錯誤。 如何調試此問題。

非常感謝

我通過提供 sasl 用戶名/密碼解決了這個問題:

>>> producer = KafkaProducer(bootstrap_servers='localhost:9092',security_protocol='SASL_PLAINTEXT', sasl_mechanism='PLAIN', sasl_plain_username='user', sasl_plain_password='GGGGGG')
>>>producer.bootstrap_connected()
True
>>> producer.send('lus_topic', b'Hello, World!')
<kafka.producer.future.FutureRecordMetadata object at 0x7fe3eb8ebbe0>

暫無
暫無

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

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