Dol*_*hin 5 python apache-kafka kafka-python
我正在使用Python 3.6编写一个Kafka生产者,Python-kafka客户端版本是1.4.4\xe3\x80\x82Kafka版本是:2.1.0和1.1.1(尝试了两个版本),但是当我写一条消息时向生产者抛出此错误:
\n\nKafkaTimeoutError(\'Failed to update metadata after 60.0 secs.\')\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的客户端代码:
\n\nproducer = KafkaProducer(\n bootstrap_servers=[\'mq-server:9092\'],\n api_version = (0,10,2,0) # solve no broker error\n)\n\nproducer.send("dolphin-test".encode(\'utf-8\'),b"test")\nRun Code Online (Sandbox Code Playgroud)\n\n这是我修改的服务器配置:
\n\nlisteners=PLAINTEXT://10.142.0.2:9092\nadvertised.listeners=PLAINTEXT://10.142.0.2:9092\nRun Code Online (Sandbox Code Playgroud)\n\n当使用脚本生成和使用消息时,它工作正常!这是客户端跟踪输出:
\n\nD:\\project\\souce\\pydolphin-service>D:/Programs/Python/Python37/python.exe d:/project/souce/pydolphin-service/dolphin/producer.py\nTraceback (most recent call last):\n File "d:/project/souce/pydolphin-service/dolphin/producer.py", line 14, in <module>\n future = producer.send(\'my-topic\', b\'raw_bytes\')\n File "D:\\Programs\\Python\\Python37\\lib\\site-packages\\kafka\\producer\\kafka.py", line 555, in send\n self._wait_on_metadata(topic, self.config[\'max_block_ms\'] / 1000.0)\n File "D:\\Programs\\Python\\Python37\\lib\\site-packages\\kafka\\producer\\kafka.py", line 682, in _wait_on_metadata\n "Failed to update metadata after %.1f secs." % (max_wait,))\nkafka.errors.KafkaTimeoutError: KafkaTimeoutError: Failed to update metadata after 60.0 secs.\nRun Code Online (Sandbox Code Playgroud)\n\n我正在从 google & baidu & yandex 进行搜索。
\n调整公布的配置:
advertised.listeners=PLAINTEXT://external-ip:9092
Run Code Online (Sandbox Code Playgroud)
修改NAT内网ip为公网ip。因为生产者会向这个地址发送消息。制作人只能访问公众。
| 归档时间: |
|
| 查看次数: |
11186 次 |
| 最近记录: |