Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 让简单的卡夫卡制作人走起来有困难_Python_Apache Kafka_Kafka Python - Fatal编程技术网

Python 让简单的卡夫卡制作人走起来有困难

Python 让简单的卡夫卡制作人走起来有困难,python,apache-kafka,kafka-python,Python,Apache Kafka,Kafka Python,我在Mac Pro(Sierra;10.12.6)上本地运行Kafka只是为了开始开发。我启动了ZooKeeper和Kafka服务器(0.11.0.1): 我已经创建了以下主题: bin/kafka-topics.sh --list --zookeeper localhost:2181 __consumer_offsets access my-topic (不确定消费者补偿是什么,我创建了另外两个) 我已经安装了kafka python(1.3.4)。 我的示例程序非常简单: from kaf

我在Mac Pro(Sierra;10.12.6)上本地运行Kafka只是为了开始开发。我启动了ZooKeeper和Kafka服务器(0.11.0.1):

我已经创建了以下主题:

bin/kafka-topics.sh --list --zookeeper localhost:2181
__consumer_offsets
access
my-topic
(不确定消费者补偿是什么,我创建了另外两个)

我已经安装了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
回溯(最近一次呼叫最后一次):
文件“product.py”,第3行,在
producer=KafkaProducer(引导服务器=['localhost:9092'])
文件“/Library/Python/2.7/site packages/kafka/producer/kafka.py”,第347行,在__
**self.config)
文件“/Library/Python/2.7/site packages/kafka/client_async.py”,第220行,在u init中__
self.config['api\u version']=self.check\u version(超时=检查超时)
文件“/Library/Python/2.7/site packages/kafka/client_async.py”,第861行,检查版本
引发错误。NoBrokersAvailable()
kafka.errors.NoBrokersAvailable:NoBrokersAvailable

想法?感谢您的帮助。

请确保您已在server.config文件中定义了设置
advised.listeners=PLAINTEXT://your.host.name:9092


可能是主机名解析提供了其他主机名,默认情况下Kafka使用
java.net.InetAddress.getCanonicalHostName()

如果您使用的是wurstmeister/Kafka,请注意,在Kafka的最新版本中,许多参数已被弃用。 而不是使用-


卡夫卡大学主持人:
卡夫卡港:9092
卡夫卡大学广告主持人姓名:
卡夫卡港:9092

你需要使用-

卡夫卡的听众:纯文本://:9092
卡夫卡听众:纯文本://:9092


查看更多详细信息

您是否尝试了我的建议,或者您可以分享解决问题的方法…是的-只需更改配置文件即可。谢谢你能检查一下卡夫卡经纪人是否真的以9092的价格运行吗。尝试运行
kafka-console-producer.sh--broker list localhost-9092--topic my topic
,查看代理实例是否真的在运行。您还可以在运行kafka start时查看日志,以查看在哪个端口和url上运行kafka实例。
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