标签:
准备消息循环的数据
函数原型:
1 | let[executor-sampler (mk-stats-sampler (:storm-conf executor-data))] |
主要功能:
定义tuple-action-fn函数,该函数会根据TaskId获得对应的Bolt对象并调用其executor方法.
Bolt输入处理函数
函数原型:
1 | tuple-action-fn (fn [task-id ^TupleImpl tuple]) |
主要功能:
获得Bolt对应的bolt-obj,调用executor回调方法。
Bolt的消息发送函数
函数原型:
1 | bolt-emit (fn [stream anchors values task]) |
主要功能:
Bolt对象的初始化
调用Bolt的prepare函数
初始化过程:
消息循环
调用阻塞方式的 consume-batch-when-available函数对接收队列中的消息进行处理。
1 | (fn [] (distruptor/comsume-batch-when-available receive-queuu event-handler)) |
创建Executor
创建Executor函数mk-executor
函数原型:
1 | (defn mk-executor [worker executor-id]) |
方法说明:
获取分组函数
函数原型:
1 | (defn outbound-components [^WorkerTopologyContext worker-context component-id]) |
功能描述:
获取从组件到某一个流的分组函数,task-fn函数通过调用该分组函数可获得消息的目标Task集合。
函数说明:
outbound-groupings
函数的定义
1 | (defn- outbound-groupings [^WorkerTopologyContext worker-context this-component-id stream-id out-fields component->grouping]) |
方法说明:
mk-grouper
返回一个函数,该函数返回一个TaskId集合,代表消息发送的目的Task集合
函数原型:
1 | (defn mk-grouper [^WorkerTopologyContext context component-id stream-id ^Fields out-fields thrift-grouping ^List target-tasks]) |
函数说明:
触发系统Ticks
setup-ticks!函数定期向Executor的接收消息队列发送Tick消息.Executor在收到Tick消息之后,就会执行发送队列的超时操作。setup-ticks!主要用于对Spout节点发送出去的消息进行操作操作。
函数原型:
1 | (defn setup-ticks [worker executor-data]) |
函数说明:
标签:
原文地址:http://www.cnblogs.com/jianyuan/p/4891955.html