问题变得简单卡夫卡生产者去
问题描述:
我在我的Mac Pro(塞拉利昂; 10.12.6)本地运行卡夫卡只是为了开始发展。我已经开始ZooKeeper的和卡夫卡服务器(0.11.0.1):问题变得简单卡夫卡生产者去
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
我有主题发布:
bin/kafka-topics.sh --list --zookeeper localhost:2181
__consumer_offsets
access
my-topic
(不知道什么是__consumer_offsets,我创建了另外两个)。
我已经安装了kafka-python(1.3.4)。 我的示例程序是死的简单:
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
producer.send('my-topic', 'Another message')
但以下消息嘎嘎叫着:
Traceback (most recent call last):
File "produce.py", line 3, in <module>
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
File "/Library/Python/2.7/site-packages/kafka/producer/kafka.py", line 347, in __init__
**self.config)
File "/Library/Python/2.7/site-packages/kafka/client_async.py", line 220, in __init__
self.config['api_version'] = self.check_version(timeout=check_timeout)
File "/Library/Python/2.7/site-packages/kafka/client_async.py", line 861, in check_version
raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
想法?任何援助赞赏。
答
请确保您具有在server.config文件中定义的设置 advertised.listeners=PLAINTEXT://your.host.name:9092
。
这可能是可能的主机名解析提供了一些其他的主机名,默认情况下使用卡夫卡java.net.InetAddress.getCanonicalHostName()
你尝试了什么,我建议,你还能分享你解决问题了...... –
是 - 只是改变了配置文件得到了它。谢谢! – Rob
你可以检查卡夫卡经纪人是否真的在9092运行。尝试运行'kafka-console-producer.sh - 经纪人列表本地主机-9092 - 主题我的主题'看看你是否真的有经纪人实例运行。您也可以在运行kafka-start时查看日志,以查看运行哪个端口和网址的kafka实例。 –