一、kafka架构

1、zookeeper和kafka集群broker与consumer打交道,zookeeper保存broker信息,方便集群高可用性。监控各个节点,组从选举等。保存consumer 消费消息的offset,方便下次顺序消费(新版本不存consumer的offset消息,而是直接存在broker集群里)

2、producer生产的消息由topic分类,类似rocketmq,每类topic消息有多个partition组成,个人理解有点类似rocketmq的queue,每类topic可以同时存在于多个broker节点上,每类partition也可存在多个broker节点。

3、broker集群也有主从,producer和consumer的读写主要是和leader交互,follower只是负责leader数据的备份。leader挂掉后,zookper会选举一个新的leader

4、consumer也有consumer group,类似于rocketmq,用于负载均衡,一个group内的消费者不能消费同一个topic且同一个partition的数据,一个consumer可以消费多类topic类数据

二、producer写入流程

 三、kafka数据存储

连接zk,查看相应节点数据

zkCli.sh     ls /brokers/ids/       get /brokers/ids/1可以看到相应节点信息