业务场景:
接受或者生成日志给kafka队列 消费者同步入库
公司最近业务日志比较多 于是设计通过MQ传输消费
设计的自作多情的时候为了减少通信 会把日志归并(使用阻塞队列汇集达到100+再发送出去)结果就是出现大规模的消息堆积在kafka里面
解决:
前面既然说了是自作多情,问题也就在这。大消息发送没问题,但是在消费的时候出现了问题。业务日志显示在频繁的拉取同一条消息,重复的消费。
原因:消费超时。kafka一次性拉取近500条消息。60秒内消费不完就会超时。导致消费不成功。也就有了后面的重复消费。
这一类业务的正确处理是这样的,直接单条记录单条消息发送,kafka自己会做消息的归并达到一定的量才会发送。消费也是如此。
网友评论