1 .concurrentConsumers,maxConcurrentConsumers
初始化默认值:
concurrentConsumers = 1;
maxConcurrentConsumers = 1;
SimpleMessageListenerContainer允许创建多个Session和MessageConsumer来接收消息。具体的个数由 concurrentConsumers属性指定。需要注意的是,应该只是在Destination为Queue的时候才使用多个 MessageConsumer(Queue中的一个消息只能被一个Consumer接收),虽然使用多个MessageConsumer会提高消息处理 的性能,但是消息处理的顺序却得不到保证:消息被接收的顺序仍然是消息发送时的顺序,但是由于消息可能会被并发处理,因此消息处理的顺序可能和消息发送的 顺序不同。此外,不应该在Destination为Topic的时候使用多个MessageConsumer,这是因为多个 MessageConsumer会接收到同样的消息。
SimpleMessageListenerContainer创建的Session和MessageConsumer分别保存在sessions和consumers属性中。
2.taskExecutor属性的默认值是null,也就是说,对MessageListener(或者 SessionAwareMessageListener)的回调是在MessageConsumer的内部线程中执行。如果指定了 taskExecutor,那么回调是在TaskExecutor内部的线程中执行。以下是相关的代码:
Java代码
1. protected MessageConsumer createListenerConsumer(final Session session)
2. throws JMSException {
3. Destination destination = getDestination();
4. if (destination == null) {
5. destination = resolveDestinationName(session, getDestinationName());
6. }
7. MessageConsumer consumer = createConsumer(session, destination);
8.
9. if (this.taskExecutor != null) {
10. consumer.setMessageListener(new MessageListener() {
11. public void onMessage(final Message message) {
12. taskExecutor.execute(new Runnable() {
13. public void run() {
14. processMessage(message, session);
15. }
16. });
17. }
18. });
19. }
20. else {
21. consumer.setMessageListener(new MessageListener() {
22. public void onMessage(Message message) {
23. processMessage(message, session);
24. }
25. });
26. }
27.
28. return consumer;
29. }
分享到:
相关推荐
在"spring配置activemq详解"这个主题中,我们将探讨如何在Spring项目中配置和使用ActiveMQ。以下是对这个主题的详细说明: 1. **配置ActiveMQ**: - 首先,我们需要在项目中引入ActiveMQ的相关依赖,这通常通过在`...
在IT行业中,消息队列(Message Queue)是分布式系统中常用的一种组件,它能有效地解耦各个服务,提高系统的响应速度和并发...在实际应用中,可以根据需求调整配置,如设置消息持久化、事务管理、错误处理等高级特性。
Spring集成ActiveMQ配置详解 Spring框架与ActiveMQ的集成,为开发者提供了一种高效、可靠的JMS消息处理机制。在企业级应用中,这种集成能够极大地提升系统的响应速度和容错能力,特别是在需要异步通信和分布式事务...
在Spring的配置文件中,定义一个JMS连接工厂,如`jmsFactory`,指定ActiveMQ服务器的URL和其他相关属性。 ```xml <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> ``` ...
通过以上内容,开发者应该能够理解ActiveMQ的基本原理,学会如何在Spring应用中配置和使用ActiveMQ,以及如何利用其特性来优化应用程序的性能和可靠性。在实际项目中,合理地运用消息中间件如ActiveMQ,可以显著提高...
2. 配置ActiveMQ服务器:设置ActiveMQ服务器的连接工厂,可以通过XML配置或Java配置来实现。 3. 创建消息生产者:使用Spring的JmsTemplate发送消息,可以配置消息的类型、目的地等属性。 4. 创建消息消费者:使用...
首先,让我们了解如何在Spring配置中设置ActiveMQ。在Spring的XML配置文件中,我们需要引入ActiveMQ的相关库,并定义一个`JmsTemplate`实例,这是Spring用于发送和接收消息的主要工具。例如: ```xml ...
前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程...3) Spring整合activemq配置 4) 定义消息发布者(生产者) 5) 定义消息订阅者(消费者) 6) Spring mvc配置 7) 实例测试
**ActiveMQ 与 Spring 整合详解** ActiveMQ 和 Spring 的整合是企业级应用中常见的消息中间件解决方案,尤其在构建分布式系统时,两者结合能够提供高效、可靠的异步通信能力。ActiveMQ 是一个开源的消息代理,实现...
作为Apache项目的一部分,ActiveMQ 获得了强大的社区支持,这确保了它能够持续发展,不断更新,以适应不断变化的技术需求。 #### 二、下载安装 1. **下载** 访问官网 ...
**Spring与ActiveMQ整合详解** 在Java开发中,Spring框架是极为重要的应用基础,而ActiveMQ作为Apache出品的一款开源消息中间件,常被用于实现应用间的异步通信和解耦。本实例代码工程"Spring+ActiveMQ整合实例代码...
5. **配置详解**:在`applicationContext.xml`中,你需要配置JMS的ConnectionFactory,通常使用ActiveMQ的`org.apache.activemq.ActiveMQConnectionFactory`。然后,创建一个Destination(如Queue或Topic),接着...
**JMS+ActiveMQ+Spring 完整样例代码详解** 在Java世界中,消息队列(Message Queue,简称MQ)是一种重要的中间件技术,它允许应用程序之间通过异步通信来解耦系统组件。Java消息服务(Java Message Service,简称...
**ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...
ActiveMQ-Spring项目是将ActiveMQ集成到Spring应用程序中的桥梁,它使得在Spring应用中配置和使用ActiveMQ变得简单易行。这个`activemq-spring-1.2.jar`库正是这个集成的实现,它包含了一系列的Spring Bean定义和...
**ActiveMQ 与 Spring 结合使用详解** ActiveMQ 是 Apache 开源组织提供的一个开源消息中间件,它实现了 JMS(Java Message Service)规范,能够帮助应用程序实现异步处理和解耦,提高系统的可扩展性和可靠性。...
**ActiveMQ整合Spring详解** ActiveMQ是Apache软件基金会下的一个开源消息中间件,它遵循Java消息服务(JMS)规范,提供可靠的消息传递服务。Spring框架则是Java领域中广泛使用的应用框架,它提供了丰富的功能,...
《Spring与ActiveMQ整合实战详解》 在Java开发领域,Spring框架和ActiveMQ是两个非常重要的组件。Spring作为一款强大的企业级应用框架,提供了一系列的工具和服务,方便开发者构建复杂的应用系统;而ActiveMQ则是...