Kafka Architecture
2019独角兽企业重金招聘Python工程师标准>>>
Kafka 主函数在kafka.Kafka.scala 如下:
val serverConfig = new KafkaConfig(props)KafkaMetricsReporter.startReporters(serverConfig.props)val kafkaServerStartble = new KafkaServerStartable(serverConfig)kafkaServerStartble.startup
读取命令行中第一个参数作为配置文件
bin/zookeeper-server-start.sh config/zookeeper.properties
kafka.utils.Utils从中读取配置项 生成props 作为KafkaConfig参数
KafkaConfig构造函数还是已VerifiableProperties作为参数
KafkaMetricsReporter调用startReporters(props)
class KafkaServerStartable(val serverConfig: KafkaConfig) extends Logging {private var server: KafkaServer = nulldef startup() {server.startup()}
}
KafkaServerStartable看上去就是一个KafkaServer …… 直接看kafka.server.KafkaServer吧
/* start scheduler */kafkaScheduler.startup()/* setup zookeeper */zkClient = initZk()/* start log manager */logManager = createLogManager(zkClient)logManager.startup()socketServer = new SocketServer(config.brokerId,config.hostName,config.port,config.numNetworkThreads,config.queuedMaxRequests,config.socketSendBufferBytes,config.socketReceiveBufferBytes,config.socketRequestMaxBytes)socketServer.startup()replicaManager = new ReplicaManager(config, time, zkClient, kafkaScheduler, logManager, isShuttingDown)kafkaController = new KafkaController(config, zkClient)/* start processing requests */apis = new KafkaApis(socketServer.requestChannel, replicaManager, zkClient, config.brokerId, config, kafkaController)requestHandlerPool = new KafkaRequestHandlerPool(config.brokerId, socketServer.requestChannel, apis, config.numIoThreads)Mx4jLoader.maybeLoad()replicaManager.startup()kafkaController.startup()topicConfigManager = new TopicConfigManager(zkClient, logManager)topicConfigManager.startup()/* tell everyone we are alive */kafkaHealthcheck = new KafkaHealthcheck(config.brokerId, config.advertisedHostName, config.advertisedPort, config.zkSessionTimeoutMs, zkClient)kafkaHealthcheck.startup()registerStats()startupComplete.set(true);
读kafka源码到了这里,突然间有一种豁然开朗的感觉,
在这里先后启动了
KafkaScheduler、LogManager、SocketServer、ReplicaManager、KakfaController、KafkaApi ....
好戏~ 就此上演 待我~ 细说从头
转载于:https://my.oschina.net/darionyaphet/blog/285010
Kafka Architecture相关推荐
- Kafka Design
Github:https://kafka.apache.org/0100/documentation.html 中文版的设计文档, http://www.oschina.net/translate/k ...
- Kafka 的七年之痒
自从 2011 年被捐献给 Apache 基金会到现在,Kafka 项目已经走过了七个年头.作为一个优秀的分布式消息系统,Kafka 已经被许多企业采用并成为其大数据架构中不可或缺的一部分.但 Kaf ...
- Apache Kafka教程
1.卡夫卡教程 今天,我们正在使用Apache Kafka Tutorial开始我们的新旅程.在这个Kafka教程中,我们将看到什么是Kafka,Apache Kafka历史以及Kafka的原因.此外 ...
- 大数据流式计算:关键技术及系统实例
大数据流式计算:关键技术及系统实例 孙大为1, 张广艳1,2, 郑纬民1 摘要:大数据计算主要有批量计算和流式计算两种形态,目前,关于大数据批量计算系统的研究和讨论相对充分,而如何构建低延迟. ...
- 常见消息队列对比(ActiveMQ、ZeroMQ、kafka、RabbitMQ)?
常见消息队列对比? 消息队列是分布式应用间交换信息的重要组件,消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走. 通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息, ...
- 如何使用 Druid 和 Kafka 构造 Kappa 架构完成流量分析
NTT 是一家全球电信公司,总部设在日本东京.在<财富>世界 500 强中,NTT 是世界第四大电信公司.NTT 通信 (NTT Com) 是 NTT 的子公司,其全球 IP 网络 (GI ...
- Apache Kafka - Schema Registry
关于我们为什么需要Schema Registry? 参考, https://www.confluent.io/blog/how-i-learned-to-stop-worrying-and-love- ...
- 【中间件】大数据之分布式消息队列Kafka
目录 Kafka设计动机 Kafka特点 Kafka设计架构 基本架构 Kafka各组件详解 Kafka关键技术点 典型应用场景 在大数据数据收集环节,需要构建数据流水线,其中一种方式可以 ...
- weblogic jms消息 删除_利用 Kafka 设置可靠的高性能分布式消息传递基础架构
世界已经迈进"移动"时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作.任何可用信息,例如,用户点击量.日志数据 ...
最新文章
- Matlab中巧用LaTex
- Hyperledger Fabric 核心模块(1)整体概述
- MySQL的show processlist:正在运行的线程
- 【渝粤教育】电大中专电子商务网站建设与维护 (27)作业 题库
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
- 安徽省2012年下半年计算机水平考试(二级 c语言程序设计),安徽省计算机等级级考试真题C语言2012年12月.doc...
- 欢迎来到,数据库联盟!
- java如何让图片自适应屏幕_CSS实现背景图片屏幕自适应
- CentOS7中安装屏幕键盘(软键盘)
- 如何更改您的Apple ID电子邮件地址
- 计算机主板品牌排行榜,电脑主板十大品牌排行榜
- android rfid开发实例,Android NFC读卡 高频卡 RFID
- DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器
- int,long,long long类型的数值范围
- 计算机网络流量监控设计方案,计算机网络流量监控的设计.pdf
- linux webdav 乱码,webDav遇到的乱码问题
- 湖南大学的计算机网络,林亚平-湖大信息科学与工程学院
- 计算机连接投影仪后黑屏咋调试,电脑连上投影仪后黑屏了,怎么处理?
- 谷歌浏览器主页图片设置
- 基于NCF的多模块协同实例
热门文章
- perl use 命令中指定路径
- Nessus 4.4 windows and linux 安装手册
- 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin
- macOS完全卸载Android Studio方法
- 6.news.php,news.php
- spring el表达式解析_Spring之旅第一篇-初识Spring
- 切割图形_3D打印、激光切割、图形化编程,六一科普活动喊你来报名啦!
- 微信小程序上传图片到服务器不显示,微信小程序上传图片到服务器wx.uploadFile...
- 交换机模拟配置软件_网络设备模拟器Packet Tracer实验
- mysql 语句 求比值_Mysql求百分比