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. Windows中几个内存相当的指标
  2. 杭电acm 2024 C语言合法标识符
  3. 转 .net里如何判断中文字符长度
  4. selenium问题记录
  5. 计算机七年级下册课件ppt课件ppt,七年级音乐下册
  6. HDU-2510(深搜)
  7. java redis hscan_redis操作之迭代器(scan和hscan)讲解
  8. java jsp传值乱码_关于JSP乱码问题(页面传值产生的乱码)
  9. 微商怎么引流被加精准粉?微商有效引流被加方法
  10. 战雷国际服服务器位置,战雷国际服服务器丢失 | 手游网游页游攻略大全
  11. 金融人必须掌握的词汇
  12. 交叉碳市场和 Web3 以实现再生变革
  13. 为什么使用 Kafka?
  14. linux系统查看进程
  15. 【实战笔记】Java 算法与数据结构-排序(选择、插入、冒泡、希尔、归并、快速、堆)
  16. 【Verilog基础】ROM IP 核基础知识
  17. POJ - 4048 Chinese Repeating Crossbow 暴力枚举+线段香蕉?
  18. Oracle数据库的冷备份和热备份
  19. 关于Pycharm第三方安装失败问题解决方法
  20. 目标检测 - Neck的设计 PAN(Path Aggregation Network)

热门文章

  1. ext form验证tip_FormValidator表单验证
  2. flutter-webview的坑用到第三方插件的
  3. 反向代理服务器(Reverse Proxy)
  4. 使用NGUINGUI的相关介绍
  5. 重装系统找不到固态_90%的人重装系统后,感觉电脑变快了
  6. 数据库单表数据过亿_最受欢迎的三大数据库,你用过吗?
  7. 在单链表写入一组数据代码_链表常见操作和15道常见面试题
  8. test zero --simulator choose
  9. 一种灵活,坚固且无凝胶的脑电图电极,可用于无创脑机接口
  10. 机器学习之SVM原理与案例