一、Kafka 总览
1)kafka 集群是由 broker 组成,每个 borker 拥有一个 controller,基于 zookeeper 做集群 controller leader 选举,以及存储集群核心元数据,leader controller 负责管理整个集群;
2)以 Topic->partition-> replication 来存储生产者数据,每个 partition 为一个 Log,log 分段存储于文件中;
3)kafka 集群管理消费者信息和消费者消费记录,这些信息也以内部 topic 形式存储;
4)Kafka Broker 结构。
二、Broker 结构
1)
2)每个 borker 进程,都包含各个管理器,如 socketServer 网络处理,replicaManager 副本管理器,kafkaController 集群管理器,groupCoordinator 消息者数据管理器,LogManager 日志数据管理器,kafkaScheduler 定时器,zkClient 与 zookeeper 通信管理器,transactionCoordinator 事务协调器。
三、通信框架
1)
2)socketserver 会启动一个 acceptor 线程,用于接收和创建新 socket,并轮询安排给 processor thread 来处理后续的数据 io;
3)processor 接收到数据后包装成 request 请求放入单个 requestQueue 队列,并有多个 io 逻辑处理 thread 从 requestQueue 中取 request 处理;
4)根据 request