一、线上问题:消息经常堆积起来,不能消费了,重启服务就能继续消费了。
消息堆积可能原因如下:
1. 生产速度大于消费速度,这样可以适当增加分区,增加consumer数量,提升消费TPS;
2. consumer消费性能低,查一下是否有很重的消费逻辑(比如拿到消息后写HDFS或HBASE这种逻辑就挺重的),看看是否可以优化consumer TPS;
3. 确保consumer端没有因为异常而导致消费hang住;
4. 如果你使用的是消费者组,确保没有频繁地发生rebalance
主要排查下可能是哪些原因
二、如果一个主题,由一个应用的名为A的消费组消费,然后把消费组名改为B,重新发布应用,这个时候是不是从主题的分区头开始消费?如何保证从上次A消费组的最新偏移量处开始消费?
假设你指的名字是group.id。那么把A改成B对于Kafka而言就是新的consumer。新consumer从头还是从最新开始消费取决于auto.offset.reset的设置