0
ActiveMQ에서 Spring Integration API의 PublishSubscribe Channel을 사용하여 제작자와 소비자를 개발했습니다. 구현을 사용하여 메시지를 게시하고 수신 할 수 있지만 단 한 번의 서비스 활성화자가 라운드 로빈 방식으로 메시지를 사용합니다. 나는 그것이 옳은지 확인해야한다.ActiveMQ에서 Spring Integration JMS를 사용하여 Publish Subscribe 구현
생산자 측 :
<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>
소비자 측면 : 당신은 소비자 측에서
<int:publish-subscribe-channel id="jmsPubSubChannel" />
를 추가 할 필요가
<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>
감사합니다. 생산자 측에서 더 많은 소비자를 추가해야한다면 무엇을 추가해야합니까? –
나는 그 질문을 이해하지 못한다. Spring 통합 관점에서 볼 때 해당 채널의 유일한 소비자는 아웃 바운드 채널 어댑터입니다. 여러 주제로 보내야하는 경우 pub 부 채널로두고 각 주제에 대한 어댑터를 추가하십시오. –
죄송합니다. 다른 주제로 보내려면 프로듀서 쪽에서 어댑터를 한 개 더 추가했는지 테스트했습니다. 소비자 측에서 publish-subscribe-channel으로 변경되어 서비스 활성화자가 메시지를 소비하게되었습니다. 완벽하게 일했습니다. 큰. 다시 한번 감사드립니다. –