kafka源码解析之四Broker的模块组成详解编程语言
Broker主要由SocketServer(Socket服务层),KafkaRequestHandlerPool(请求转发层),Kafka api(业务逻辑层),Control(集群状态控制层),KafkaHealthcheck Broker (Broker健康检测层),TopicConfigManager(topic配置信息监控层)组成。见下图:
● SocketServer内部开启1个Acceptor线程接受对外的sock链接,然后转发给N个处理线程Processor,其中N=num.network.threads
● N个Processor将接受到的request存放至阻塞队列requestQueue
● M个处理线程 IO Thread从RequestChannel的请求阻塞队列requestQueue获取请求,调用kafkaApis处理不同的请求,M=num.io.threads
● Broker共处理10种不同的request,分别为RequestKeys.ProduceKey、RequestKeys.FetchKey、RequestKeys.OffsetsKey、RequestKeys.MetadataKey 、RequestKeys.LeaderAndIsrKey、RequestKeys.StopReplicaKey、
RequestKeys.UpdateMetadataKey、RequestKeys.ControlledShutdownKey、RequestKeys.OffsetCommitKey、RequestKeys.OffsetFetchKey。
● KafkaApis(业务逻辑处理层)通过ReplicaManager(副本管理模块),logManager(日志模块),OffsetManager(偏移量管理模块)共同实现正常的业务逻辑
● IO Thread将request处理过的response存放进RequestChannel的响应阻塞队列responseQueues[i]
● Processor Thread从对应的RequestChannel的响应阻塞队列responseQueues[i]获取之前自己发送的request,然后发送给客户端
● Control(集群状态控制层)通过ZK选举改变自身的状态,集群中只有1台broker成为leader,主要负责应对topic的创建和删除,topic的分区变化,topic的分区内部的复本变化,broker的上下线。
● KafkaHealthcheck(Broker 健康状态监测层)通过在ZK上注册EphemeralPath来实现
● TopicConfigManager(topic配置信息监控层)主要响应topic的配置信息的变化
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/11824.html
c相关文章
- Kafka入门实战教程(4):重要的集群参数配置
- 【源码分析】Kafka分区重分配/迁移(kafka-reassign-partitions.sh)
- kafka安装使用
- Kafka 删除topic_kafka自动创建topic
- Kafka入门经典教程_kafka菜鸟教程
- linux部署kafka_linux无法启动kafka
- kafka零拷贝原理_通俗易解中的解是什么意思
- kafka之ranger插件的一个坑
- Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)
- kafka 结合springboot实战--第一节
- Kafka快速入门(Kafka消费者)
- Kafka消费过程分析
- Kafka安装配置详解程序员
- Kafka Streams 剖析详解大数据
- kafka源码解析之十七消费者流程(客户端如何获取topic的数据)详解编程语言
- kafka源码解析之十五客户端如何创建topic详解编程语言
- kafka源码解析之六SocketServer详解编程语言
- kafka原理解析-《Learning Apache Kafka, 2nd Edition.pdf》详解编程语言
- Linux安装Kafka:一步一步操作指南(linux安装kafka)
- Oracle 数据流轻松集成 Kafka 服务:提高数据传输效率(oracle到kafka)
- Kafka连接Oracle数据库提高数据处理能力(kafka连oracle)
- 使用Kafka连接Oracle数据库(kafka到oracle)
- Kafka与Oracle融合实现数据交互(kafka与oracle)