前段时间实际项目中遇到了一个问题,特此整理下
配置信息
1.kafka集群采用经典部署方式,3节点
2.为了保证全局消息有序性,topic只有一个分区,三个副本
3.生产者和消费者均只有一个,均以主备微服务方式部署
4.消费者通过TCP方式将数据发送给其他服务,这里用对端代替
问题现象
对端收到的稳定数据突然丢失,引发一系列问题
原因排查
1.排查消费者消息日志,可以看到:由于网络问题,消费者异常重启;但是针对该场景,消费者做了故障保持机制啊,为啥数据会丢失呢?
2.消费者故障保持机制为:重启后,消费者对端先保持消费者发送的数据指定时间,并且消费者会向生产者请求全量数据。
3.再次排查生产者端是否能够正常生产消息