首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有收到信息与融合卡夫卡简单的生产者/消费者的例子?

没有收到信息与融合卡夫卡简单的生产者/消费者的例子?
EN

Stack Overflow用户
提问于 2017-01-27 21:14:12
回答 2查看 1.8K关注 0票数 0

我使用使用kafka_2.11-0.10.1.1confluent-kafka-0.9.2 (主分支) python绑定来运行librdkafka-0.9.2。我的机器运行的是ubuntu-16.04 x86_64。我在端口zookeeper-3.4.8-1上运行2181。我运行confluent producer示例如下:

代码语言:javascript
复制
$ cd confluent-kafka-python/examples
$ python producer.py localhost:9095 confluent-01
first message
2nd msg

消费

代码语言:javascript
复制
$ python consumer.py localhost:9095 confluentgroup confluent-01

所有东西都在我的机器上本地运行,而我的机器不运行任何防火墙。

备注

  • 该主题已在动物园管理员上成功创建。
  • 代理成功地接收到生产者消息:
  • 使用者按照conf {'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的生产者方面。用力:
代码语言:javascript
复制
$ 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

Problem:过了一段时间,我在消费者方面什么也没有得到

问题:

  1. 我做错什么了?
  2. 如何验证已在代理端接收到生产者消息?,生产者消息在代理端正确接收。
  3. ,我如何调试使用者端?,我将'debug': "cgrp, topic, fetch"添加到使用者conf中。我在哪里能读到日志?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-31 14:54:40

我终于把事情做好了。最初,我运行了合流-卡夫卡教程,它:

  • 不捕获ctrl+c信号,
  • poll()中不超时

在消费者代码中。因此,我不得不在我的linux机器上进行ctrl+z,然后kill %1。我相信这个终端没有关闭套接字,这个套接字已经打开了一段时间(TIME_WAIT)。然后,当我重新启动消费者时,它从旧的套接字中取出垃圾,结果被卡住了。

我添加了try: [...] except KeyboardInterrupt: consumer.close()以捕获ctrl+c并关闭套接字清除器。不再面临这个问题。

我希望这能对将来的人有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2017-01-27 23:30:45

我有两个建议:

1)尝试将选项从开始添加到使用者命令中。

2)代理的默认端口为9092,因此请检查要使用的正确端口

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41903096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档