JStorm 源码分析 - Nimbus

栏目: 编程工具 · 发布时间: 7年前

内容简介:拓扑会通过 Nimbus 分发给 supervisor, 那么 Nimbus 内部是怎么操作的? 这里以本地模式为例, 对拓扑的提交过程做一个分析.参考资料:TODO …

拓扑会通过 Nimbus 分发给 supervisor, 那么 Nimbus 内部是怎么操作的? 这里以本地模式为例, 对拓扑的提交过程做一个分析.

参考资料: 理解storm拓扑并行度

疑问:

  1. 在zk上建立task信息,这些信息是用来做什么的?
  2. notifyTopologyActionListener 做了什么?

启动

TODO …

命令的入口

所有命令的入口, 都是由 ServiceHandler 实现的, com.alibaba.jstorm.daemon.nimbus.ServiceHandler#submitTopologyWithOpts.

  1. 配置校验
  2. 判断拓扑是否已存在/重名/重复提交
  3. 标准化conifg
  4. 标准化topology (finalize component’s task parallism)
  5. 校验topology结构
    1. 校验 bolt/spout 的id 和 name
    2. 校验 bolt 的输入是否为空
  6. 拷贝代码二进制文件到集群
  7. 在zk上建立task信息 (supervisor会持续监控保存在zk的任务) JStorm 源码分析 - Nimbus
    1. 为bolt/spout等创建对应的 TaskInfo (多并行度的bolt/spout会创建出多个TaskInfo) com.alibaba.jstorm.cluster.Common#mkTaskMaker
    2. 注意, jstorm 的 setNumTasks 其实是无效的, 只有 paralleism 并行度会起作用.(见 jstorm作者之一cody的回答: https://stackoverflow.com/a/34316700/6275014 )
  8. StartTopologyEvent.pushEvent,
    1. 然后会异步地去执行 com.alibaba.jstorm.daemon.nimbus.TopologyAssign#mkAssignment
      1. com.alibaba.jstorm.schedule.default_assign.TaskScheduler#assign: 将task分配给worker, 在这里做了一些定制化, 如有的task要求分配在不同的worker上等.
      2. 创建好 Assign 后, 会发布到 zk 上.
  9. notifyTopologyActionListener

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

天使投资

天使投资

唐滔 / 浙江人民出版社 / 2012-4-30 / 56.99元

1.国内首部天使投资的实战手册,堪称创业者的第一本书,打造创业者与天使投资人沟通的最佳桥梁。 2. 薛蛮子、徐小平、雷军、周鸿祎、孙陶然、但斌、曾玉、查立、杨宁、户才和、周哲、莫天全、《创业家》、《创业邦》等联袂推荐。 3.作者唐滔结合他在美国和中国17年的创业和投资经历,为创业者和投资者提供了珍贵和可靠的第一手资料。 4.创业者应何时融资?花多少时间去融资?如何获得融资者青睐?......一起来看看 《天使投资》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器