Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache storm 喷口上的风暴滴答声元组_Apache Storm - Fatal编程技术网

Apache storm 喷口上的风暴滴答声元组

Apache storm 喷口上的风暴滴答声元组,apache-storm,Apache Storm,我想将我的喷口配置为在不同的流上以2种不同的频率发出滴答声元组。我的问题如下: 我知道这是如何使用螺栓完成的。但是,在喷口上,滴答声元组会在每个滴答声上调用下一个元组方法吗 如何确定勾号被调用的频率?也就是说,我在配置对象中配置的时间的实际值是多少 只有螺栓可以接收记号元组。喷口只能发出元组 我假设你正试图每隔一段时间从你的喷口中“读”一次,以释放出一个新的元组 例如,要在读取之间休眠50毫秒: @Override public void nextTuple() { try {

我想将我的喷口配置为在不同的流上以2种不同的频率发出滴答声元组。我的问题如下:

  • 我知道这是如何使用螺栓完成的。但是,在喷口上,滴答声元组会在每个滴答声上调用下一个元组方法吗

  • 如何确定勾号被调用的频率?也就是说,我在配置对象中配置的时间的实际值是多少


  • 只有螺栓可以接收记号元组。喷口只能发出元组

    我假设你正试图每隔一段时间从你的喷口中“读”一次,以释放出一个新的元组

    例如,要在读取之间休眠50毫秒:

    @Override
    public void nextTuple() {
       try {
          String message = _mqClient.getMessage();
          if (message != null) {
             _collector.emit(new Values(message));
          } 
          // sleep for 50 milliseconds
          Utils.sleep(50);
       } catch (Exception e) {
          _collector.reportError(e);
          LOG.error("MQ spout error {}", e);
       }
    }
    

    也许这可以帮助你:

    风暴信号旨在提供一种将信息(“信号”)发送至 风暴拓扑中的组件(喷口/螺栓),否则 可寻址

    Storm拓扑可以被视为静态的,因为对 拓扑的行为需要重新部署。风暴信号提供 在运行时修改拓扑行为的简单方法,无需 重新部署


    我不明白它与使用普通螺栓方式配置它有什么不同?在一个bolt中,可以使用这个函数
    private static boolean isTickTuple(Tuple Tuple){return Tuple.getSourceComponent().equals(Constants.SYSTEM_COMPONENT_ID)&&Tuple.getSourceStreamId().equals(Constants.SYSTEM_TICK_STREAM_ID)}
    为什么不使用带TICK Tuple的2个喷口或1个喷口+1个bolt?您真的需要在您的单个喷口中合并数据吗?如果你混合了太多的数据,要小心复杂性,如果你能在两个组件中分离出来,那肯定是最好的选择。风暴信号不再被保留。