使用pykafka的balanceConsumer消费kafka数据时,在rebalance过程中,同一个group的consumer A还未退出一个partition 1,另一个consumer B已经请求消费这个partition 1时,会抛出PartitionOwnedError。
若进一步导致另一个consumer B在rebalance过程中未能获取partition,就会抛出ConsumerStoppedException。
出现该异常时,rebalance_max_retries参数配置rebalance最大次数,可以适量调大。rebalance_backoff_ms参数配置rebalance失败后等待时间,也可以调大。
另外,使用kill -9停止consumer时,可能出现zookeeper上的consumer节点数据未能清除,下次使用相同group id进行消费时将导致partition无法分配,也会抛出这些异常,停止消费者时尽量优雅退出。可以通过更换group id、或清理zookeeper上consumer group数据解决。
参考:
https://blog.csdn.net/liuxingen/article/details/53335904
网友评论