Closed childe closed 5 years ago
https://github.com/Shopify/sarama/pull/1083/files#diff-9076b00c0e67e4484d0c04fb247353c7R138
我先看了sarama 的 join group 的代码, 几乎一样的逻辑, 就是发送 join request , 然后发送 sync request. 如果失败就重试.
我会继续找一台压力大的kafka实测一下.
我没仔细看 kafka的协议,我猜测 rebalance的过程 可能是消费者并发重启的个数相关。
如 30个消费者 消费120个分区的大topic
, 30个消费进程并发重启,每个消费进程都会去发送join请求,rebalance是会相互影响的。
可以发下你实现的healer参考 的kakfa的rebalance相关文档吗, 我也看看能不能做一些优化?
timeout设置有BUG, join的timeout应该比session timeout时间长, 默认是长5秒, 但代码有BUG, 导致没有生效. 所以很可能join的时候会timeout.
@sundy-li 发现有逻辑上的错误, 在有两个consumer的时候, 会导致不停rebalance. d1b1891dfce530eaaa93dba388b67313c2e700d9 这个 commit 避免了这个问题, 但还不是完美的解决方法. 我找时间写一下这个问题的生产原因, 以及当前为啥可以避免.
@childe 我们遇到过这个坑。。 导致一直消费不起来,重启数次解决了
来自 https://github.com/childe/healer/issues/2