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 设置可靠的高性能分布式消息传递基础架构
世界已经迈进"移动"时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作.任何可用信息,例如,用户点击量.日志数据 ...
最新文章
- Windows中几个内存相当的指标
- 杭电acm 2024 C语言合法标识符
- 转 .net里如何判断中文字符长度
- selenium问题记录
- 计算机七年级下册课件ppt课件ppt,七年级音乐下册
- HDU-2510(深搜)
- java redis hscan_redis操作之迭代器(scan和hscan)讲解
- java jsp传值乱码_关于JSP乱码问题(页面传值产生的乱码)
- 微商怎么引流被加精准粉?微商有效引流被加方法
- 战雷国际服服务器位置,战雷国际服服务器丢失 | 手游网游页游攻略大全
- 金融人必须掌握的词汇
- 交叉碳市场和 Web3 以实现再生变革
- 为什么使用 Kafka?
- linux系统查看进程
- 【实战笔记】Java 算法与数据结构-排序(选择、插入、冒泡、希尔、归并、快速、堆)
- 【Verilog基础】ROM IP 核基础知识
- POJ - 4048 Chinese Repeating Crossbow 暴力枚举+线段香蕉?
- Oracle数据库的冷备份和热备份
- 关于Pycharm第三方安装失败问题解决方法
- 目标检测 - Neck的设计 PAN(Path Aggregation Network)