我可以看到我们已经为storm中的一个特定流提供了shufflegroup,如下所述:如何在apachestorm中分割流?
builder.setBolt("myBolt1", new MyBolt1()).shuffleGrouping("SpoutWithStreams", "stream1");
但是我有一个用例,我想在一个喷口发出的特定流上进行字段分组。
例如,spoutwithstreams发出带有随机词的stream1,我希望mybolt1订阅此流,但我也希望mybolt1的特定示例接收相同的词,即我希望stream1上的fieldsgrouping。
所以我想要的是这样的:
builder.setBolt("myBolt1", new MyBolt1()).fieldsGrouping("boltWithStreams", "stream1","field");
我不想只为了场上的分组而多加一个螺栓。还有别的选择吗?
1条答案
按热度按时间mnemlml81#
由于没有明确的问题,我将猜测你的意思,并试图回答。
我猜你想在你的箭中接收两个流,其中一个流是从另一个箭中随机组合而来,另一个流是从喷口中组合而来的田地。
如果是这样,你可以这样做:
然后在bolt中,您可以使用以下方法来区分元组属于一个流还是另一个流: