一、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可以看到相应节点信息