bolt在java,java – 在Apache Storm中将不同的元组从1个spout发送到不同的bolt

本文详细介绍了如何使用Apache Storm中的命名流机制,使一个Spout向MyBoltA和MyBoltB螺栓发送定制的元组。通过shuffleGrouping方法,展示了如何订阅和处理来自不同流的数据。关键步骤包括声明输出字段、发送元组和流的识别。
摘要由CSDN通过智能技术生成

要从一个Spout向不同的螺栓发出元组,您可以使用命名流,如下所示:

喷口

@Override

public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {

outputFieldsDeclarer.declareStream("streamA", new Fields("A"));

outputFieldsDeclarer.declareStream("streamB", new Fields("B"));

}

@Override

public void nextTuple() {

outputCollector.emit("streamA", new Values("A"));

outputCollector.emit("streamB", new Values("B"));

}

然后,每个螺栓订阅一个特定的流:

builder.setBolt("MyBoltA", new BoltA()).shuffleGrouping("MySpout", "streamA");

builder.setBolt("MyBoltB", new BoltB()).shuffleGrouping("MySpout", "streamB");

最后,如果一个bolt订阅了几个流,你可以使用以下方法来知道哪个流已经发出了一个元组:

tuple.getSourceStreamId()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值