为什么用python写的kafka客户端脚本,程序一运行就能生产数据,而要等一段时间才能消费到数据(topic里面有数据)。(pykafka和confluentKafka都一样)
只有极少的概率立刻可以消费到数据,大多数都要等个几分钟,很影响测试效率。
- 自己封装的一个给予confluentKafka的consumer对象
- 调用,topic里面是有内容的等一段时间也是可以消费到数据的
为什么用python写的kafka客户端脚本,程序一运行就能生产数据,而要等一段时间才能消费到数据(topic里面有数据)。(pykafka和confluentKafka都一样)
只有极少的概率立刻可以消费到数据,大多数都要等个几分钟,很影响测试效率。
你在实例化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!
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
https://stackoverflow.com/que... 最下面的回答,注意conf中session.timeout.ms参数的设置。