gpt4 book ai didi

java - 在 ActiveMQ 中使用 Spring Integration JMS 实现发布订阅

转载 作者:行者123 更新时间:2023-12-01 09:38:27 28 4
gpt4 key购买 nike

我使用 ActiveMQ 中的 Spring Integration API 的 PublishSubscribe channel 开发了生产者和消费者。我可以使用该实现来发布和接收消息,但只有一个服务激活器以循环方式使用消息。我需要确认一下是否正确。以下是我的配置:

生产者方:

<int:publish-subscribe-channel id="jmsPubSubChannel" />

<int-jms:outbound-channel-adapter channel="jmsPubSubChannel"
destination-name="${jms.topic.name}"
pub-sub-domain="true"
connection-factory="connectionFactory" />

<!-- Define the ActiveMQ connection factory -->
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jms.broker.url}"/>
<property name="userName" value="${jms.username}" />
<property name="password" value="${jms.password}" />
</bean>

消费者方面:

<jms:message-driven-channel-adapter id="messageDrivenAdapter"
channel="jmsPubSubChannel"
destination-name="${jms.topic.name}"
pub-sub-domain="true" />

<!-- Subscriber - offeringmsg -->
<int:service-activator id="offeringmsg1" input-channel="jmsPubSubChannel" ref="impl1" />

<int:service-activator id="offeringmsg2" input-channel="jmsPubSubChannel" ref="impl2" />

<bean id="impl1" class="com.intuit.imp.mql.MessageListenerImpl" />

<bean id="impl2" class="com.intuit.imp.mql.MessageListenerImpl2" />

<!-- Define the ActiveMQ connection factory -->
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jms.broker.url}"/>
<property name="userName" value="${jms.username}" />
<property name="password" value="${jms.password}" />
</bean>

最佳答案

您需要添加

<int:publish-subscribe-channel id="jmsPubSubChannel" />

在消费者方面。

如果未显式声明 channel ,则默认为具有循环语义的直接 channel 。

在生产者一侧,由于只有一个消费者(出站 channel 适配器),因此那里不需要是发布/订阅 channel 。

关于java - 在 ActiveMQ 中使用 Spring Integration JMS 实现发布订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643740/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com