是否可以在一个拓扑中创建多个喷口?怎么样?

Irf*_*fan 5 apache-kafka apache-storm

我有两个主题BACKUPDATA和LIVEDATA.什么是阅读这两个主题的最佳解决方案?1.两种不同的拓扑结构?2.一个有两个喷口的拓扑结构?我尝试了两种不同的拓扑,但风暴没有为第二种拓扑分配插槽.

Nis*_*yal 4

是的,您可以在拓扑中使用多个 Spout。

builder.setSpout("kafka-spout1", new KafkaSpout(spoutConf1), 1);
builder.setSpout("kafka-spout2", new KafkaSpout(spoutConf2), 1);
Run Code Online (Sandbox Code Playgroud)

那么,配置取决于您处理数据的方式。

如果为两者创建单独的拓扑,那么一个拓扑故障问题不会影响另一个拓扑,但会影响运行成本。

并且在具有多个 Spout 的单个拓扑的情况下,两者都会受到彼此故障的影响。如果您想同时合并两个主题的数据,您应该使用多个 spout。