activeMQ,PTP传输 消息生产端过多,单队列性能考虑问题

路灯下的大怪兽 发布于 2013/10/08 14:59
阅读 689
收藏 0

业务场景是手机终端发送图片到ActiveMQ中间件,然后PC端再异步接收。现在的问题是,现有程序将所有手机端发送的照片发送到一个队列上。会不会在接收的时候等待消费端响应,或者单队列直接崩溃的问题,有没有比较好的解决方案。现在的想法是 手机端传输图片的时候 queue按地区或者其他命名,那么中间件上就会出现多个队列,消费端该怎么接收这些队列信息。。。或者有没其他比较好的方式解决这种业务场景,还是没必要考虑这种性能问题。。

 

现在的配置是这样的

 


 <!-- 目的地 -->
 <bean id="queueReceiverListenerDest" class="org.apache.activemq.command.ActiveMQQueue">
  <!-- 队列名称 -->
  <constructor-arg index="0" value="${mq.destination}" />
 </bean>
 <!-- 创建JMS的Session生成类 -->
 <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
  <property name="connectionFactory" ref="connectionFactory" />
  <property name="defaultDestination" ref="queueReceiverListenerDest" />
  <!--<property name="receiveTimeout" value="10000" /> -->
 </bean>

 <!-- 消息监听容器,其各属性的意义为: connectionFactory:指定所监听的对象,在这里就是监听连接到tcp://test.vemic.com:61616上面的ActiveMQ;
  destination:监听的消息模式; messageListener:接收者 ) -->

 <bean id="queueReceiverListener" class="com.yst.nfsq.xs.listener.QueueReceiveListener"></bean>


 <!-- 并发,持久化配置处 -->
 <bean id="MsgQueuelistenerContainer"
  class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  <property name="connectionFactory" ref="connectionFactory" />
  <property name="destination" ref="queueReceiverListenerDest" />
  <property name="messageListener" ref="queueReceiverListener" />
  <property name="receiveTimeout" value="${mq.receiveTimeout}" />
  <property name="sessionAcknowledgeModeName" value="${mq.sessionAcknowledgeModeName}" />
  <property name="concurrentConsumers" value="20"></property>
 </bean>

 

队列怎么配置多个,怎么接收

 

加载中
0
yourOnlyJack
yourOnlyJack
多个消费者监控一组队列,每个消费者对应方法都一样不就行了。
路灯下的大怪兽
路灯下的大怪兽
就是消费者 配置的接收地址都不同就可以了吧。我用的spring配置感觉好麻烦。
0
文星
文星
你在Spring中配置队列名称可以用表达式,而不必写死队列名称。
文星
文星
回复 @路灯下的大怪兽 : user.*,这个星号可以匹配任意的字符
路灯下的大怪兽
路灯下的大怪兽
比如怎么配置,麻烦给我样例,谢谢
返回顶部
顶部