没有收到带有融合的 kafka 简单 producer/consumer 示例的消息?
Dont receive message with confluent kafka simple producer/consumer examples?
I 运行 kafka_2.11-0.10.1.1
与 confluent-kafka-0.9.2
(主分支)python 绑定,使用 librdkafka-0.9.2
。我的机器运行subuntu-16.04x86_64。我 运行 zookeeper-3.4.8-1
在端口 2181
上。我 运行 confluent producer 例子是这样的:
$ cd confluent-kafka-python/examples
$ python producer.py localhost:9095 confluent-01
first message
2nd msg
和消费者:
$ python consumer.py localhost:9095 confluentgroup confluent-01
所有 运行 都在我的本地机器上,没有 运行 任何防火墙。
备注:
- 在 Zookeeper 上成功创建主题
- 代理成功接收生产者消息:
- 消费者设置以下配置
{'bootstrap.servers': broker, 'group.id': group, 'session.timeout.ms': 6000, 'default.topic.config': {'auto.offset.reset': 'smallest'}, 'api.version.request': True }
- 一开始
producer/consumer
工作了一段时间,直到我在生产者方面得到 Receive failed: Disconnected
。摘录:
$ python producer.py localhost:9095 confluent-02
asd
% Message delivered to confluent-02 [0]
1234123
890890
% Message delivered to confluent-02 [0]
%3|1485791262.420|FAIL|rdkafka#producer-1| [thrd:obscura.ax.example.com:9095/3]: obscura.ax.example.com:9095/3: Receive failed: Disconnected
问题: 一段时间后我在消费者端没有得到任何东西
问题:
- 我做错了什么?
- 如何验证代理端是否已收到生产者消息?
生产者消息在代理端被正确接收。
- 如何调试消费者端?
我将
'debug': "cgrp, topic, fetch"
添加到消费者配置中。我在哪里可以阅读日志?
我有两个建议:
1) 尝试将选项 --from-beginning 添加到消费者命令
2) 代理的默认端口是 9092,因此请检查要使用的正确端口
希望对您有所帮助。
我最终让事情成功了。最初我 运行 confluent-kafka tutorial,其中:
- 不捕获
ctrl+c
SIGINT 信号,
- 在
poll()
期间不会超时
在消费者代码中。因此我不得不在我的 linux 机器上 ctrl+z
然后 kill %1
它。我相信这个终止没有关闭套接字,它保持打开状态一段时间 (TIME_WAIT
)。然后,当我重新启动消费者时,它从旧套接字中提取垃圾并卡住了。
我添加了 try: [...] except KeyboardInterrupt: consumer.close()
来捕获 ctrl+c
并干净地关闭套接字。并且不再面临这个问题。
我希望这对以后的人有所帮助。
I 运行 kafka_2.11-0.10.1.1
与 confluent-kafka-0.9.2
(主分支)python 绑定,使用 librdkafka-0.9.2
。我的机器运行subuntu-16.04x86_64。我 运行 zookeeper-3.4.8-1
在端口 2181
上。我 运行 confluent producer 例子是这样的:
$ cd confluent-kafka-python/examples
$ python producer.py localhost:9095 confluent-01
first message
2nd msg
和消费者:
$ python consumer.py localhost:9095 confluentgroup confluent-01
所有 运行 都在我的本地机器上,没有 运行 任何防火墙。
备注:
- 在 Zookeeper 上成功创建主题
- 代理成功接收生产者消息:
- 消费者设置以下配置
{'bootstrap.servers': broker, 'group.id': group, 'session.timeout.ms': 6000, 'default.topic.config': {'auto.offset.reset': 'smallest'}, 'api.version.request': True }
- 一开始
producer/consumer
工作了一段时间,直到我在生产者方面得到Receive failed: Disconnected
。摘录:
$ python producer.py localhost:9095 confluent-02
asd
% Message delivered to confluent-02 [0]
1234123
890890
% Message delivered to confluent-02 [0]
%3|1485791262.420|FAIL|rdkafka#producer-1| [thrd:obscura.ax.example.com:9095/3]: obscura.ax.example.com:9095/3: Receive failed: Disconnected
问题: 一段时间后我在消费者端没有得到任何东西
问题:
- 我做错了什么?
- 如何验证代理端是否已收到生产者消息? 生产者消息在代理端被正确接收。
- 如何调试消费者端?
我将
'debug': "cgrp, topic, fetch"
添加到消费者配置中。我在哪里可以阅读日志?
我有两个建议:
1) 尝试将选项 --from-beginning 添加到消费者命令
2) 代理的默认端口是 9092,因此请检查要使用的正确端口
希望对您有所帮助。
我最终让事情成功了。最初我 运行 confluent-kafka tutorial,其中:
- 不捕获
ctrl+c
SIGINT 信号, - 在
poll()
期间不会超时
在消费者代码中。因此我不得不在我的 linux 机器上 ctrl+z
然后 kill %1
它。我相信这个终止没有关闭套接字,它保持打开状态一段时间 (TIME_WAIT
)。然后,当我重新启动消费者时,它从旧套接字中提取垃圾并卡住了。
我添加了 try: [...] except KeyboardInterrupt: consumer.close()
来捕获 ctrl+c
并干净地关闭套接字。并且不再面临这个问题。
我希望这对以后的人有所帮助。