下面介绍kafka broker的主要子模块,帮助您更好地学习并理解kafka源代码和架构。

如下介绍几个子模块:

  • Kafka API layer
  • LogManager and Log
  • ReplicaManager
  • ZookeeperConsumerConnector
  • service Schedule
如下是系统几个模块如何组成到一起架构图:
启动过程
zkClient 初始化=>logManager  start()=> socketServer start()=>requestHandlerPool 初始化=>replicaManager start() => 
kafkaController start() =>topicConfigManager start() => kafkaHealthcheck start()
Broker的核心IO处理在requestHandlerPool  这里面

zkClient初始化
利用第三方的zkclient初始与zk之间的链接,zkclient负责与zk的connection,session的维护。

logManager 初始化
所有的读写请求都将实例化各自的log实例对象。同时,后台的log线程将负责维护partitions与log segment。

socketServer初始化
NIO socket server
*   1 Acceptor thread 负责接收请求,并转给Processor threads 进行处理
*   N Processor threads 负责每个socket请求的实际处理

•M Handler threads 负责事件机制催每个Processor 的请求与product请求的消息回复。

replicaManager初始化
•负责该broker的partition副本的管理工作

kafkaController初始化
负责该broker的Controller状态的管理工作

topicConfigManager初始化
负责该broker的topic的状态管理工作

kafkaHealthcheck初始化
负责该broker的状态在zk的维护工作
requestHandlerPool初始化
核心IO处理中心,通过事件驱动模式进行处理

维护2个队列,
一个是request队列
一个是response队列
通过,KafkaApis调用(关于请查看KafkaApis详解)handler的事件类型,进行相关的事件的处理。
请求的事件类型共有ProduceKey, FetchKey, OffsetsKey, MetadataKey, LeaderAndIsrKey, StopReplicaKey, 
UpdateMetadataKey, ControlledShutdownKey, OffsetCommitKey, OffsetFetchKey

请注明转载自:http://blog.csdn.net/lizhitao/article/details/38352947

apache kafka系列之broker内部架构相关推荐

  1. apache kafka系列之server.properties配置文件参数说明

    每个kafka broker中配置文件server.properties默认必须配置的属性如下: [java] view plaincopy broker.id=0 num.network.threa ...

  2. 【Apache OFBiz 系列】OFBiz整体架构介绍

    背景描述 OFBiz同样作为一个企业级应用开发的框架,与市面上Spring.Struts等框架有何区别?OFBiz是基于最新J2EE/XML规范和技术标准,构建大中型企业级.跨平台.跨数据库.跨应用服 ...

  3. apache kafka技术分享系列(目录索引)--转载

    原文地址:http://blog.csdn.net/lizhitao/article/details/39499283 kafka开发与管理: 1)apache kafka消息服务 2)kafak安装 ...

  4. apache kafka技术分享系列(目录索引)

    apache Kafka中国QQ社区 中国社区QQ群1:162272557 未满  收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高 中国社区QQ群2:414762562 ...

  5. 深入解析 Apache BookKeeper 系列:第四篇—背压

    本文由 StreamNative 组织翻译自<Apache BookKeeper Internals - Part 4 - Back Pressure>,作者 Jack Vanlightl ...

  6. Apache Kafka:大数据的实时处理时代

    在过去几年,对于 Apache Kafka 的使用范畴已经远不仅是分布式的消息系统:我们可以将每一次用户点击,每一个数据库更改,每一条日志的生成,都转化成实时的结构化数据流,更早的存储和分析它们,并从 ...

  7. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  8. 消息中间件系列(二):Kafka的原理、基础架构、以及使用场景

    一:Kafka简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedi ...

  9. Apache Kafka教程A系列:简单生产者示例

    原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_simple_producer_example.htm 让我们创建一个使用J ...

最新文章

  1. 将keras的h5模型转化为onnx
  2. java中常用的几种排序算法--常见笔试面试
  3. (转载) linux安装JDK
  4. 毕设项目部署到服务器,在云服务器上做毕设
  5. Android短信息验证码自动填写详细介绍
  6. 转载:BGA封装芯片手工焊接攻略
  7. web学习记录-JS-12
  8. 聚观早报 | 特斯拉上线Steam平台;苹果CEO库克访问索尼
  9. Container Station搭建个人网盘Nextcloud(Mariadb)
  10. 【Android开发日记】jsonObject = new JSONObject(info)报错 A JSONObject text must begin with '{' at character
  11. HDD深圳站:全生命周期赋能开发者,华为引领应用生态升级
  12. PMP考试自学可以吗? 一分钟让你搞清楚
  13. Google图书馆现在开幕
  14. html2canvas 图片文字模糊
  15. For health
  16. c语言编辑mapgis花纹库,MapGIS绘图步骤、图形处理—输入编辑等技巧
  17. html随机抽奖程序
  18. bert-as-service的使用
  19. Gox语言的指针类型及其操作-GX12
  20. 悟空问答 App 宣布下线 品牌启用双拼域名wukong.com

热门文章

  1. operater数组的用法
  2. java错位_【LeetCode(Java) - 634】寻找数组的错位排列
  3. 链路聚合(三层链路聚合)
  4. 移动通信 | 5G | 基基基础
  5. 屏幕适配中的dip与px之间的转化
  6. java哈夫曼树权值计算_JAVA 哈夫曼树权值求和(代码找错)
  7. 零拷贝:mmap和sendFile 的区别
  8. 职场新人完全转型七大要素
  9. Catia 利用几何约束绘制草图
  10. 汇川中型PLC使用ST语言基础