Apache storm 喷口上的风暴滴答声元组
我想将我的喷口配置为在不同的流上以2种不同的频率发出滴答声元组。我的问题如下:Apache storm 喷口上的风暴滴答声元组,apache-storm,Apache Storm,我想将我的喷口配置为在不同的流上以2种不同的频率发出滴答声元组。我的问题如下: 我知道这是如何使用螺栓完成的。但是,在喷口上,滴答声元组会在每个滴答声上调用下一个元组方法吗 如何确定勾号被调用的频率?也就是说,我在配置对象中配置的时间的实际值是多少 只有螺栓可以接收记号元组。喷口只能发出元组 我假设你正试图每隔一段时间从你的喷口中“读”一次,以释放出一个新的元组 例如,要在读取之间休眠50毫秒: @Override public void nextTuple() { try {
只有螺栓可以接收记号元组。喷口只能发出元组 我假设你正试图每隔一段时间从你的喷口中“读”一次,以释放出一个新的元组 例如,要在读取之间休眠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?您真的需要在您的单个喷口中合并数据吗?如果你混合了太多的数据,要小心复杂性,如果你能在两个组件中分离出来,那肯定是最好的选择。风暴信号不再被保留。