ActiveMQ实现监听多个队列消费

rocky2171 2014-05-06 02:40:31

<!-- 发送消息到队列 -->
<bean id="sendResumeQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="rockytest" />
</bean>

   
<!-- 消息监听容器 -->
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="sendResumeQueueDestination" />
<property name="messageListener" ref="messageReceiver" />
</bean>

<bean id="messageReceiver" class="com.tr.mail.jms.MessageReceiver"></bean>




public class MessageReceiver implements MessageListener {
@Override
public void onMessage(Message m) {
ObjectMessageConverter convert=new ObjectMessageConverter();
String data="";
try {
data = (String)convert.fromMessage(m);
} catch (MessageConversionException e1) {
e1.printStackTrace();
} catch (JMSException e1) {
e1.printStackTrace();
}
System.out.println("消费消息:"+data);


上述代码只能监听一个消息队列“rockytest”,但是我想做到可以监听几十个几百个,xml配置 <property name="destination" ref="sendResumeQueueDestination" />
各位大神遇到这样的案例么?求给解决方案啊,感激不尽
...全文
7080 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
配置一个ConcurrentConsumers属性,默认是1.
gordon_2003 2014-06-05
  • 打赏
  • 举报
回复
引用 楼主 chen464193096 的回复:

<!-- 发送消息到队列 -->
    <bean id="sendResumeQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
       <constructor-arg index="0" value="rockytest" />
    </bean>
   
  <!-- 消息监听容器 -->  
    <bean id="listenerContainer"    
        class="org.springframework.jms.listener.DefaultMessageListenerContainer">    
        <property name="connectionFactory" ref="connectionFactory" />    
        <property name="destination" ref="sendResumeQueueDestination" />    
        <property name="messageListener" ref="messageReceiver" />    
    </bean> 
  
    <bean id="messageReceiver" class="com.tr.mail.jms.MessageReceiver"></bean>


public class MessageReceiver implements MessageListener {
	@Override
	public void onMessage(Message m) {
		  ObjectMessageConverter convert=new ObjectMessageConverter();
		  String data="";
		try {
			data = (String)convert.fromMessage(m);
		} catch (MessageConversionException e1) {
			e1.printStackTrace();
		} catch (JMSException e1) {
			e1.printStackTrace();
		}
		System.out.println("消费消息:"+data);
上述代码只能监听一个消息队列“rockytest”,但是我想做到可以监听几十个几百个,xml配置 <property name="destination" ref="sendResumeQueueDestination" /> 各位大神遇到这样的案例么?求给解决方案啊,感激不尽
如果是想监听多个Queue的话,修改如下:

<!-- 发送消息到队列 -->
    <bean id="sendResumeQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
       <constructor-arg index="0" value="queue1,queue2" />
    </bean>
beiouwolf 2014-05-07
  • 打赏
  • 举报
回复
mq的消息分为队列和订阅 队列只能使用一个消费者 你的需求应该采用订阅 具体你google下呗

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧