python kafka消费实时数据_【Python】kafka要等一段时间才能消费到数据

使用Python的pykafka和confluent_kafka库时,遇到Kafka消费者需要等待几分钟才能消费到数据的问题。这可能是由于session.timeout.ms参数设置不当导致。增加session_timeout_ms和heartbeat_interval_ms参数,如session_timeout_ms=6000, heartbeat_interval_ms=2000,可减少等待时间。官方文档指出,如果在session超时时间内未收到心跳,消费者将被踢出组并重新平衡。注意,本地默认session_timeout_ms可能为30秒,而非10秒。" 132786577,19694662,使用OpenCV实现分水岭图像分割算法,"['计算机视觉', '图像处理', 'OpenCV', '算法', 'Python编程']
摘要由CSDN通过智能技术生成

为什么用python写的kafka客户端脚本,程序一运行就能生产数据,而要等一段时间才能消费到数据(topic里面有数据)。(pykafka和confluentKafka都一样)

只有极少的概率立刻可以消费到数据,大多数都要等个几分钟,很影响测试效率。

自己封装的一个给予confluentKafka的consumer对象

7431219c5ca46c8821b64fdaf73f7094.png

调用,topic里面是有内容的等一段时间也是可以消费到数据的

0af7dc06d840273c77321075dcbfe6e6.png

回答

https://stackoverflow.com/que… 最下面的回答,注意conf中session.timeout.ms参数的设置。

几分钟不应该啊,能把代码贴下么

你在实例化consumer对象的时候加这样两个参数session_timeout_ms=6000,heartbeat_interval_ms=2000

consumer = KafkaConsumer(self.kafkatopic, group_id = self.groupid,

bootstrap_servers = '{kafka_host}:{kafka_port}'.format(

kafka_host=self.kafkaHost,

kafka_port=self.kafkaPort

),

session_timeout_ms=6000,

heartbeat_interval_ms=2000)

官网里有参数的解释https://kafka-python.readthed…

主要是这句话:“ If no heartbeats are received by the broker before the expiration of this session timeout, then the broker will remove this consumer from the group and initiate a rebalance.”

另外本机的session_timeout_ms默认值我的是30s,不是官网里说的10s!

请问,您的问题解决了吗?我消费kafka数据的时候,遍历消息,就没反应。能帮忙解决吗?

您好 您的问题解决了么,我遇到和您一样的问题,改了参数没有解决

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值