Kafka怎么保证数据可靠?
往两大方向考虑问题:
一:如何保证数据不丢失?
1):副本同步机制:
kafka的partition为主从结构,在一个partition里,存在leader和follower,当数据发送给leader后,需要确保follower和leader数据同步后才发送给producer一个ack
副本同步实现-ISR副本同步队列:
ISR(In-Sync Replicas),副本同步队列。
ISR中包括leader和follower,如果leader挂掉,ISR队列会选择一个服务作为新的leader
有replica.lag.max.messages(延迟条数)和replica.lag.time.max.ms(延迟时间)两个参数决定一台服务是否可以加入ISR副本队列,0.10后把延迟条数删除防止服务频繁得进去队列。
任意一个维度超过阈值都会把 Follower 剔除出 ISR ,存入 OSR(Outof-Sync Replicas)列表&