Asynchronous Storm针对I/O任务的最佳拓扑设计模式

Asynchronous Storm针对I/O任务的最佳拓扑设计模式,asynchronous,io,apache-storm,Asynchronous,Io,Apache Storm,因此,我有一个框架,其中输入是Kafka队列中的Tweet文档。我的拓扑需要阅读它并点击三个不同的外部API 在前进之前,我需要一种方法来确保这三个都完成了。我不认为一个BatchBolt是一个好的解决方案,是吗?有人能帮忙吗 编辑/澄清 三次API点击需要返回结果。如果我没有弄错的话,我需要在文档传递到下一个bolt之前处理这些响应。你有卡夫卡吐露的艾美信息。每一条信息都需要在三个不同的系统中传递。 这可以通过配置拓扑轻松完成 TopologyBuilder topologyBuilder =

因此,我有一个框架,其中输入是
Kafka
队列中的
Tweet
文档。我的拓扑需要阅读它并点击三个不同的外部API

在前进之前,我需要一种方法来确保这三个都完成了。我不认为一个
BatchBolt
是一个好的解决方案,是吗?有人能帮忙吗

编辑/澄清


三次API点击需要返回结果。如果我没有弄错的话,我需要在文档传递到下一个
bolt

之前处理这些响应。你有卡夫卡吐露的艾美信息。每一条信息都需要在三个不同的系统中传递。 这可以通过配置拓扑轻松完成

TopologyBuilder topologyBuilder = new TopologyBuilder ();
topologyBuilder.setSpout("Generator", spout, 1);
topologyBuilder.setBolt("External1", bolt1, 1).localOrShuffleGrouping("Generator");
topologyBuilder.setBolt("External2", bolt2, 1).localOrShuffleGrouping("Generator");
topologyBuilder.setBolt("External3", bolt3, 1).localOrShuffleGrouping("Generator");

在这个简单的例子中,3个不同的螺栓连接到1个卡夫卡喷嘴。当喷口发出消息时,它会同时发送到所有三个螺栓。如果其中一个螺栓不确认,它将失败,并重新限制到所有这些螺栓

如果我没弄错的话。你有卡夫卡吐露的艾美信息。每一条信息都需要在三个不同的系统中传递。 这可以通过配置拓扑轻松完成

TopologyBuilder topologyBuilder = new TopologyBuilder ();
topologyBuilder.setSpout("Generator", spout, 1);
topologyBuilder.setBolt("External1", bolt1, 1).localOrShuffleGrouping("Generator");
topologyBuilder.setBolt("External2", bolt2, 1).localOrShuffleGrouping("Generator");
topologyBuilder.setBolt("External3", bolt3, 1).localOrShuffleGrouping("Generator");

在这个简单的例子中,3个不同的螺栓连接到1个卡夫卡喷嘴。当喷口发出消息时,它会同时发送到所有三个螺栓。如果其中一个螺栓不确认,它将失败,并重新限制到所有这些螺栓

啊,不。它们都需要点击一个外部API并在发送到下一个螺栓之前返回结果。所以你需要按顺序调用这3个API?不是按顺序调用,但在继续下一步之前,我需要所有三个API的结果。啊,不需要。它们都需要命中一个外部API并在发送到下一个螺栓之前返回结果。因此,您需要按顺序调用这3个API?不是按顺序调用,但在继续下一步之前,我需要所有三个API的结果。