生产者producer丢消息
Caused by: org.apache.kafka.common.errors.TimeoutException: Expiring 3 record(s) for bos-ma-audience-next-node-finish-insert-2: 43272 ms has passed since last append
原因:网络抖动发送超时、record-buffer内存满(异步发送消息,未被回收)等
解决办法:采用同步发送、限流、增大reties重试次数、调小batch数量
broker丢消息
原因:异步刷盘,消息还没从page cache刷到缓存,从page cache
解决办法:理论上没办法解决,只能通过调整刷盘机制的参数缓解该情况。减少刷盘间隔,减少刷盘数据量大小,修改acks参数等
消费者丢消息
原因:自动提交方式,消息一经提交,但是程序执行失败了。
解决办法:手动提交,会出现重复小消费,需要增加幂等控制,保证至少消费一次at least once