Java StormSubmitter()执行拓扑,该拓扑在运行时从rabbitmq喷口读取数据
我使用的是一个从RabbitMQ队列读取数据的风暴喷口。我正在使用StormSubmitter从命令提示符向集群提交Storm拓扑。因此,在运行拓扑时,它应该等待喷口从队列中读取数据,但它不这样做 是因为拓扑无法在运行时读取数据吗 我以以下方式运行拓扑: TopologyBuilder=新TopologyBuilder; builder.setspoot槽口mqspoot,新槽口mqspoot; builder.setBolt槽口螺栓,新槽口螺栓 .ShuffleGroupingrabbitmqpout; Config conf=新配置Java StormSubmitter()执行拓扑,该拓扑在运行时从rabbitmq喷口读取数据,java,apache-storm,Java,Apache Storm,我使用的是一个从RabbitMQ队列读取数据的风暴喷口。我正在使用StormSubmitter从命令提示符向集群提交Storm拓扑。因此,在运行拓扑时,它应该等待喷口从队列中读取数据,但它不这样做 是因为拓扑无法在运行时读取数据吗 我以以下方式运行拓扑: TopologyBuilder=新TopologyBuilder; builder.setspoot槽口mqspoot,新槽口mqspoot; builder.setBolt槽口螺栓,新槽口螺栓 .ShuffleGroupingrabbitmq
conf.put(Config.TOPOLOGY_WORKERS, 4);
conf.put(Config.TOPOLOGY_DEBUG, true);
try {
System.out.println("TOPOLOGY submitted");
StormSubmitter.submitTopology("rabbittest3", conf, builder.createTopology());
}
喷口正在从rabbitmq队列读取以下内容:
public void nextTuple()
{
try
{
consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);
while(true){
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
collector.emit(new Values(new String(message)));
}
}
Storm拓扑当然可以在运行时通过喷口读取数据。你应该提供你尝试过的更多细节,因为这可能会帮助我们帮助你。你能在没有风暴的情况下创建到Rabbit的连接吗?预回迁数量如何?是否足够大?