kafka集群架构
-
broker
-
topic
-
partition:分区,把同一个topic分成不同的分区,提高负载
- leader:分区的主节点
- follower:分区的从节点
-
Consumer Group
生产者往kafka发送数据的流程
- 生产者从Kafka集群里面获取分区leader信息
- 生产者将消息发送到leader
- leader将信息写入本地磁盘
- follower从leader中拉取消息数据进行备份
- follower将数据写入本地磁盘后给leader发送ACK确认
- leader收到所有的follower的ACk之后会向生产者发送ACK确认
kafka选择分区的模式(三种)
- 指定往哪个分区写
- 指定key,kafka会根据key做hash然后决定写哪一个分区
- 轮询的方式,
生产者往kafka发送数据的方式
- 0 : 把数据发给leader即可 (效率极高,安全性最低)
- 1 : 把数据发送给leader,等待leader回ACK
- null : 把数据发给leader,确保follower从leader拉取数据回复ACk给leader,然后leader再去回复ACK给生产者(安全性最高的)