apache kafka系列之broker内部架构
下面介绍kafka broker的主要子模块,帮助您更好地学习并理解kafka源代码和架构。
如下介绍几个子模块:
- Kafka API layer
- LogManager and Log
- ReplicaManager
- ZookeeperConsumerConnector
- service Schedule
![](/assets/blank.gif)
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
apache kafka系列之broker内部架构相关推荐
- apache kafka系列之server.properties配置文件参数说明
每个kafka broker中配置文件server.properties默认必须配置的属性如下: [java] view plaincopy broker.id=0 num.network.threa ...
- 【Apache OFBiz 系列】OFBiz整体架构介绍
背景描述 OFBiz同样作为一个企业级应用开发的框架,与市面上Spring.Struts等框架有何区别?OFBiz是基于最新J2EE/XML规范和技术标准,构建大中型企业级.跨平台.跨数据库.跨应用服 ...
- apache kafka技术分享系列(目录索引)--转载
原文地址:http://blog.csdn.net/lizhitao/article/details/39499283 kafka开发与管理: 1)apache kafka消息服务 2)kafak安装 ...
- apache kafka技术分享系列(目录索引)
apache Kafka中国QQ社区 中国社区QQ群1:162272557 未满 收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高 中国社区QQ群2:414762562 ...
- 深入解析 Apache BookKeeper 系列:第四篇—背压
本文由 StreamNative 组织翻译自<Apache BookKeeper Internals - Part 4 - Back Pressure>,作者 Jack Vanlightl ...
- Apache Kafka:大数据的实时处理时代
在过去几年,对于 Apache Kafka 的使用范畴已经远不仅是分布式的消息系统:我们可以将每一次用户点击,每一个数据库更改,每一条日志的生成,都转化成实时的结构化数据流,更早的存储和分析它们,并从 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- 消息中间件系列(二):Kafka的原理、基础架构、以及使用场景
一:Kafka简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedi ...
- Apache Kafka教程A系列:简单生产者示例
原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_simple_producer_example.htm 让我们创建一个使用J ...
最新文章
- 将keras的h5模型转化为onnx
- java中常用的几种排序算法--常见笔试面试
- (转载) linux安装JDK
- 毕设项目部署到服务器,在云服务器上做毕设
- Android短信息验证码自动填写详细介绍
- 转载:BGA封装芯片手工焊接攻略
- web学习记录-JS-12
- 聚观早报 | 特斯拉上线Steam平台;苹果CEO库克访问索尼
- Container Station搭建个人网盘Nextcloud(Mariadb)
- 【Android开发日记】jsonObject = new JSONObject(info)报错 A JSONObject text must begin with '{' at character
- HDD深圳站:全生命周期赋能开发者,华为引领应用生态升级
- PMP考试自学可以吗? 一分钟让你搞清楚
- Google图书馆现在开幕
- html2canvas 图片文字模糊
- For health
- c语言编辑mapgis花纹库,MapGIS绘图步骤、图形处理—输入编辑等技巧
- html随机抽奖程序
- bert-as-service的使用
- Gox语言的指针类型及其操作-GX12
- 悟空问答 App 宣布下线 品牌启用双拼域名wukong.com