zoukankan      html  css  js  c++  java
  • Storm之tickTuple

    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来实现对时间要求非常严格的场景。

  • 相关阅读:
    使用gulp搭建一个传统的多页面前端项目的开发环境
    抓包工具使用
    selectors 模块
    I/O模型
    协程
    进程池
    进程的同步
    进程间通讯的三种方式
    多进程调用
    生产者消费者模型
  • 原文地址:https://www.cnblogs.com/029zz010buct/p/6509649.html
Copyright © 2011-2022 走看看