【问题标题】:Trouble getting simple Kafka producer going无法让简单的 Kafka 生产者继续工作
【发布时间】:2018-08-08 22:20:05
【问题描述】:

我在我的 Mac Pro(Sierra;10.12.6)上本地运行 Kafka,只是为了开始开发。我已经启动了 ZooKeeper 和 Kafka 服务器(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

想法?任何帮助表示赞赏。

【问题讨论】:

  • 你试过我的建议了吗,否则你能分享解决你问题的方法吗...
  • 是的 - 只需更改配置文件即可。谢谢!
  • 您能否检查 kafka 代理是否真的在 9092 运行。尝试运行 kafka-console-producer.sh --broker-list localhost-9092 --topic my-topic 以查看代理实例是否真的在运行。运行kafka-start的时候也可以看到日志,看看kafka实例运行在哪个port和url上。

标签: python apache-kafka kafka-python


【解决方案1】:

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

主机名解析可能会给出其他主机名,默认情况下 Kafka 使用java.net.InetAddress.getCanonicalHostName()

【讨论】:

    【解决方案2】:

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

    KAFKA_HOST: KAFKA_PORT: 9092 KAFKA_ADVERTISED_HOST_NAME: <IP-ADDRESS> KAFKA_ADVERTISED_PORT: 9092

    你需要使用 - KAFKA_LISTENERS: PLAINTEXT://:9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://<IP-ADDRESS>:9092

    查看this link了解更多详情

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 2021-03-22
      • 2013-10-06
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多