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相关推荐

  1. Kafka Design

    Github:https://kafka.apache.org/0100/documentation.html 中文版的设计文档, http://www.oschina.net/translate/k ...

  2. Kafka 的七年之痒

    自从 2011 年被捐献给 Apache 基金会到现在,Kafka 项目已经走过了七个年头.作为一个优秀的分布式消息系统,Kafka 已经被许多企业采用并成为其大数据架构中不可或缺的一部分.但 Kaf ...

  3. Apache Kafka教程

    1.卡夫卡教程 今天,我们正在使用Apache Kafka Tutorial开始我们的新旅程.在这个Kafka教程中,我们将看到什么是Kafka,Apache Kafka历史以及Kafka的原因.此外 ...

  4. 大数据流式计算:关键技术及系统实例

    大数据流式计算:关键技术及系统实例 孙大为1, 张广艳1,2, 郑纬民1     摘要:大数据计算主要有批量计算和流式计算两种形态,目前,关于大数据批量计算系统的研究和讨论相对充分,而如何构建低延迟. ...

  5. 常见消息队列对比(ActiveMQ、ZeroMQ、kafka、RabbitMQ)?

    常见消息队列对比? 消息队列是分布式应用间交换信息的重要组件,消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走. 通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息, ...

  6. 如何使用 Druid 和 Kafka 构造 Kappa 架构完成流量分析

    NTT 是一家全球电信公司,总部设在日本东京.在<财富>世界 500 强中,NTT 是世界第四大电信公司.NTT 通信 (NTT Com) 是 NTT 的子公司,其全球 IP 网络 (GI ...

  7. Apache Kafka - Schema Registry

    关于我们为什么需要Schema Registry? 参考, https://www.confluent.io/blog/how-i-learned-to-stop-worrying-and-love- ...

  8. 【中间件】大数据之分布式消息队列Kafka

    目录 Kafka设计动机 Kafka特点 Kafka设计架构 基本架构 Kafka各组件详解 Kafka关键技术点 典型应用场景       在大数据数据收集环节,需要构建数据流水线,其中一种方式可以 ...

  9. weblogic jms消息 删除_利用 Kafka 设置可靠的高性能分布式消息传递基础架构

    世界已经迈进"移动"时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作.任何可用信息,例如,用户点击量.日志数据 ...

最新文章

  1. Matlab中巧用LaTex
  2. Hyperledger Fabric 核心模块(1)整体概述
  3. MySQL的show processlist:正在运行的线程
  4. 【渝粤教育】电大中专电子商务网站建设与维护 (27)作业 题库
  5. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
  6. 安徽省2012年下半年计算机水平考试(二级 c语言程序设计),安徽省计算机等级级考试真题C语言2012年12月.doc...
  7. 欢迎来到,数据库联盟!
  8. java如何让图片自适应屏幕_CSS实现背景图片屏幕自适应
  9. CentOS7中安装屏幕键盘(软键盘)
  10. 如何更改您的Apple ID电子邮件地址
  11. 计算机主板品牌排行榜,电脑主板十大品牌排行榜
  12. android rfid开发实例,Android NFC读卡 高频卡 RFID
  13. DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器
  14. int,long,long long类型的数值范围
  15. 计算机网络流量监控设计方案,计算机网络流量监控的设计.pdf
  16. linux webdav 乱码,webDav遇到的乱码问题
  17. 湖南大学的计算机网络,林亚平-湖大信息科学与工程学院
  18. 计算机连接投影仪后黑屏咋调试,电脑连上投影仪后黑屏了,怎么处理?
  19. 谷歌浏览器主页图片设置
  20. 基于NCF的多模块协同实例

热门文章

  1. perl use 命令中指定路径
  2. Nessus 4.4 windows and linux 安装手册
  3. 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin
  4. macOS完全卸载Android Studio方法
  5. 6.news.php,news.php
  6. spring el表达式解析_Spring之旅第一篇-初识Spring
  7. 切割图形_3D打印、激光切割、图形化编程,六一科普活动喊你来报名啦!
  8. 微信小程序上传图片到服务器不显示,微信小程序上传图片到服务器wx.uploadFile...
  9. 交换机模拟配置软件_网络设备模拟器Packet Tracer实验
  10. mysql 语句 求比值_Mysql求百分比