1.基本概念
broker:一般指kafka的部署节点。
leader:用于处理消息的接收和消费等请求。
follower:主要用于备份消息数据。
2.拓扑图
- kafka集群的原数据通过zookeeper获取
- 在brokers的一排中,同一个topic的同一个partition只能有一个leader,同一个leader会有多个follower
- 红线表示管理流,从zookeeper中注册或者获取消息,绿线表示数据的同步
- producer和consumer都是与leader进行数据交互的
3.Kafka节点故障
(1).出现故障的场景
- broker与zookeeper心跳未保持则视为节点故障,默认30秒进行一次心跳检测
- follower消息落后leader太多也视为节点故障
kafka会对故障进行移除操作
(2).kafka基本不会因为节点故障而丢失数据
- kafka的语义担保很大程度上避免了数据丢失
- kafka会对消息进行集群内的平衡,减少消息在某些节点热度过高(一个topic的多个partition不会分配在一个broker上,副本也不会分配在同一个broker上,这样当消息传入时就会有多台机器在进行备份,减少了单台机器的数据存储量和备份操作)