Storm之tickTuple

本文介绍了Storm中Tick Tuple机制的使用方法及注意事项。通过设置不同频率,可以在Bolt组件中实现周期性的处理任务。文章详细解释了如何为特定Bolt配置Tick Tuple,并探讨了全局配置对所有Bolt的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tickTuple是Storm中引入的一种定时机制,利用tickTuple能够实现间隔一段时间进行某种处理的逻辑。

在boltA中实现tickTuple注册的方法如下

@Override
public Map<String, Object> getComponentConfiguration() {
Config conf = new Config();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 3);
return conf;
}

这样,boltA的实例都会每隔3秒钟收到一个tickTuple。

如果在boltB中又进行了如下的设置

@Override
public Map<String, Object> getComponentConfiguration() {
Config conf = new Config();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 5);
return conf;
}

这样,boltB的实例每隔5秒钟会收到一个tickTuple。

boltA和boltB的两个tickTuple流不会相互影响。

还可以在全局中设置topology自己的tickTuple。

例如进行如下设置,

<property>
<name>topology.tick.tuple.freq.secs</name>
<value>1</value>
</property>
</properties>

这样,topology中所有的bolt都会收到tickTuple。

如上,如果bolt本身和topology都进行了设置,则bolt本身设置的优先级高,即不会收到1秒每个的tickTuple,如果仅仅是topology进行了设置,但是bolt没有设置,则每个bolt都会每秒收到一个tickTuple。

另外,tickTuple是基于秒级的间隔,一般正常情况下,多有毫秒级的波动,但是在特殊情况下,tickTuple流也会有积压,所以不能用tickTuple来实现对时间要求非常严格的场景。

转载于:https://www.cnblogs.com/029zz010buct/p/6509649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值