我有一个activemq主题提供程序。我需要将从该主题收到的数据输入到storm主题。有没有什么方法可以直接完成,或者我应该创建中间队列并将主题数据输入队列,然后将数据拉入喷口。哪一个是最好的选择?
vdzxcuhz1#
我已经阅读了ptgoetz的stormjms示例,并提出了一个将主题数据直接输入到喷口的解决方案。需要在jms-activemq.xml中指定主题
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <amq:topic id="topic" physicalName="myTopic" /> <amq:connectionFactory id="jmsConnectionFactory" brokerURL="tcp://localhost:61616" /> </beans>
然后我们可以在session.auto\u acknowledge中使用jms确认模式创建类似于bellow的jmsspout
JmsProvider jmsTopicProvider = new SpringJmsProvider("jms-activemq.xml", "jmsConnectionFactory", "topic"); JmsTupleProducer producer = new JsonTupleProducer(); JmsSpout topicSpout = new JmsSpout(); topicSpout.setJmsProvider(jmsTopicProvider); topicSpout.setJmsTupleProducer(producer); topicSpout.setJmsAcknowledgeMode(Session.AUTO_ACKNOWLEDGE); topicSpout.setDistributed(false);
1条答案
按热度按时间vdzxcuhz1#
我已经阅读了ptgoetz的stormjms示例,并提出了一个将主题数据直接输入到喷口的解决方案。
需要在jms-activemq.xml中指定主题
然后我们可以在session.auto\u acknowledge中使用jms确认模式创建类似于bellow的jmsspout