最近几天在找工作,问到了项目中使用Kafka的相关问题,现在总结一下,方便以后使用。
这是在一个网站中找到的,这是网站的地址Kafka中文文档,在这里面也有提到。
现在一一回答:
1,Kafka节点之间备份数据是通过leader进行的,首先leader将follower各个分区中的数据收集起来,完后follower被动的接受数据,这样就做到了节点之间的数据的同步
2. kafka消息会丢失。
首先了解一下Kafka的消息机制:同步和异步两种方式。
默认是同步方式,可通过producer.type属性进行配置。Kafka通过配置request.required.acks属性来确认消息的生产:
0—表示不进行消息接收是否成功的确认;
1—表示当Leader接收成功时确认;
-1—表示Leader和Follower都接收成功时确认;
综上所述,有6种消息生产的情况,下面分情况来分析消息丢失的场景:
(1)acks=0,不和Kafka集群进行消息接收确认,则当网络异常、缓冲区满了等情况时,消息可能丢失;
(2)acks=1、同步模式下,只有Leader确认接收成功后但挂掉了,副本没有同步,数据可能丢失;
3.不回答
4.Kafka的leader选举机制
https://blog.csdn.net/yanshu2012/article/details/54894629
6.https://blog.csdn.net/qq_37502106/article/details/80271800
https://blog.csdn.net/WYpersist/article/details/80102803?utm_source=blogxgwz2