首页 > 编程语言 > 详细

ActiveMQ(07):ActiveMQ结合Spring开发--建议

时间:2017-04-16 18:28:30      阅读:336      评论:0      收藏:0      [点我收藏+]

1、Camel框架支持大量的企业集成模式,可以大大简化集成组件间的大量服务和复杂的消息流。而Spring框架更注重简单性,仅仅支持基本的最佳实践。

2、Spring消息发送的核心架构是JmsTemplate,隔离了像打开、关闭Session和Producer的繁琐操作,因此应用开发人员仅仅需要关注实际的业务逻辑。

  但是JmsTemplate损害了ActiveMQ的PooledConnectionFactory对session和消息producer的缓存机制而带来的性能提升。

3、新的Spring里面,可以设置org.springframework.jms.connection.CachingConnectionFactory的sessionCacheSize ,或者干脆使用ActiveMQ的

  PooledConnectionFactory,如下:

    <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
        <property name="connectionFactory">
	    <bean class="org.apache.activemq.ActiveMQConnectionFactory">
	        <property name="brokerURL">
		    <value>${activemq.brokerURL}</value>
		</property>
		<property name="userName" value="${activemq.userName}"></property>
	        <property name="password" value="${activemq.password}"></property>
	    </bean>
	</property>
	<property name="maxConnections" value="${activemq.maxConnections}"></property>
    </bean>

4、不建议使用JmsTemplate的receive()调用,因为在JmsTemplate上的所有调用都是同步的,这意味着调用线程需要被阻塞,直到方法返回,这对性能影响很大。

5、请使用DefaultMessageListenerContainer,它允许异步接收消息并缓存session和消息consumer,而且还可以根据消息数量动态的增加或缩减监听器的数量。

<!-- 消费者监听器 -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="jmsFactory" />
    <property name="destination" ref="destinationTopic" />
    <property name="messageListener" ref="messageListener" />
</bean>


本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1916382

ActiveMQ(07):ActiveMQ结合Spring开发--建议

原文:http://1754966750.blog.51cto.com/7455444/1916382

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!