初步接触storm(二)----RollingTopWords中如何定时的

又看了一下RollingTopWords,让我比较关注的地方是在RollingCountBolt类里,是通过方法TupleHelpers.isTickTuple(tuple)来判断是否应该发射当前窗口数据,但是判断的依据一开始让我很迷惑,居然是判断该tuple是否来源于“__system”的组件和“__tick”流。

作为对storm了解不多的人,我真的糊涂了,tuple不都是上游的spout发射来的吗,哪里冒出来源不同的tuple。

好吧,我就开始猜了,莫非有个隐藏的spout?或者RollingCountBolt自己给自己发什么特殊的tuple。

正毫无头绪时,奇迹出现了,我把鼠标移到Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS这个常量上时,出现了一行小提示:

How often a tick tuple from the "__system" component and "__tick" stream should be sent to tasks. Meant to be used as a component-specific configuration.

哦,在方法getComponentConfiguration() 里

conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, emitFrequencyInSeconds);

这句话告诉系统,需要按照emitFrequencyInSeconds的频率,产生来源于“__system”的组件和“__tick”流的tuple给task。

好了,这就是RollingTopWords中,定时产生特殊tuple的方法,对于我这种新手,算是又有点进步了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值