0 0

Spring与activemq整合,消费者的消费速度非常慢5

我使用spring与activemq整合发送消息,发送速度可以达到10000/s,但是消费者的消费速度却是非常慢,求给位大神帮忙!!!这是我配置文件的内容:<bean id="innerNgbfJmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- <property name="brokerURL" value="failover:(tcp://10.253.45.103:61616)"
/> -->
<property name="brokerURL" value="${ngbf.jms.provider.url}" />
<!--慢消费者设置为true,快消费者设置为false-->
<property name="dispatchAsync" value="true" />
<!--<property name="producerWindowSize" value="10240000" />
<property name="useAsyncSend" value="true" />-->
</bean>

<!-- 设置发送连接池,提高性能 -->
<bean id="ngbfJmsSenderFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory" ref="innerNgbfJmsFactory" />
<!-- <property name="maxConnections" value="100"></property>
<property name="maximumActive" value="100"></property>
<property name="exclusiveConsumer" value="true"></property>-->
</bean>

<!-- 设置接收连接池,和发送区分以提高性能 -->
<bean id="ngbfJmsReveiverFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory" ref="innerNgbfJmsFactory" />
<!--<property name="sessionCache" value="10"></property>-->
<!--<property name="maxConnections" value="100"></property>
<property name="maximumActive" value="100"></property>-->
</bean>

<!-- 发送模板 -->
<bean id="ngbfJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="ngbfJmsSenderFactory" />
<property name="messageConverter" ref="ngbfMessageByteConvert" />
<!-- <property name="defaultDestination" ref="destination" />-->
</bean>

<!-- 消息转换器 -->
<bean id="ngbfMessageConvert" class="com.kingstar.ngbf.s.jms.MessageUnitConvert" />
<bean id="ngbfMessageTextConvert" class="com.kingstar.ngbf.s.jms.MessageUnitTextConvert" />
<bean id="ngbfMessageByteConvert" class="com.kingstar.ngbf.s.jms.MessageUnitByteConvert" />
<!-- 缺省的消息监听适配器 -->
<bean id="ngbfDefaultMessageListenerAdapter"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter"
abstract="true">
<property name="defaultListenerMethod" value="handleMessage" /><!--handleMessage&receive-->
<property name="messageConverter" ref="ngbfMessageByteConvert" />
</bean>
<!--定义destination -->
<!--<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> 
        <constructor-arg index="0"> 
            <value>NGBF.Queue?consumer.exclusive=true&amp;consumer.priority=10</value> 
        </constructor-arg> 
    </bean>-->

<!-- 定义缺省的Queue消息监听器 -->
<bean id="ngbfDefaultQueueMessageListener" parent="ngbfDefaultMessageListenerAdapter">
<constructor-arg>
<bean class="com.kingstar.ngbf.s.jms.MessageUnitQueueListener" />
</constructor-arg>
</bean>
<!--<bean id="ngbfDefaultQueueMessgeListener1" class="org.springframework.jms.listener.adapter.MessageListenerAdapter" >
<constructor-arg>
<bean class="com.kingstar.ngbf.s.jms.MessageUnitQueueListener1" />
</constructor-arg>
<property name="defaultListenerMethod" value="handleMessage" />
<property name="messageConverter" ref="ngbfMessageByteConvert" />
</bean>-->

<!-- 定义缺省的Topic消息监听器 -->
<bean id="ngbfDefaultTopicMessageListener" parent="ngbfDefaultMessageListenerAdapter">
<constructor-arg>
<bean class="com.kingstar.ngbf.s.jms.MessageUnitTopicListener" />
</constructor-arg>
</bean>

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10" />  
        <property name="maxPoolSize" value="100"/>  
        <property name="queueCapacity" value="1000"/>  
        <property name="keepAliveSeconds" value="300"/>
</bean>

<!-- 缺省的消息监听器Queue容器,可以被子类集成改写 -->
<bean id="ngbfDefaultQueueListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
lazy-init="false">
<property name="connectionFactory" ref="ngbfJmsReveiverFactory" />
<property name="destinationName" value="NGBF.Queue" />
    <property name="pubSubDomain" value="false" />
<!-- 事务值为false,接受速度明显提高-->
<!-- <property name="sessionTransacted" value="false"/>-->
<property name="messageListener" ref="ngbfDefaultQueueMessageListener" />
<!-- 多线程监听? -->
<!-- maxMessagesPerTask值小于-1,循环接收消息-->
<property name="maxMessagesPerTask" value="-1"/>
<property name="concurrentConsumers" value="10" />
<property name="maxConcurrentConsumers" value="100" />
<property name="idleTaskExecutionLimit" value="2" />
    <property name="receiveTimeout" value="10000" />  
<property name="cacheLevel" value="3"/>
<property name="taskExecutor" ref="taskExecutor"/>
</bean>
<bean id="ngbfDefaultQueueListener" parent="ngbfDefaultQueueListenerContainer">
<property name="messageSelector" value="${ngbf.jms.queue.selector}" />
<!--<property name="destinationName" value="${ngbf.jms.queue.default}" />-->
<property name="destinationName" value="NGBF.Queue" />
</bean>
2013年7月29日 15:39

1个答案 按时间排序 按投票排序

0 0

看不到listener代码,不确定是否在其中阻塞,建议多加时间戳,排查哪个阶段耗时多

2013年7月30日 10:42

相关推荐

    Spring和ActiveMQ整合的完整实例

    将Spring与ActiveMQ整合,可以轻松地在Spring应用中实现消息队列的功能,提高系统的可扩展性和可靠性。 首先,让我们了解Spring框架如何支持消息传递。Spring提供了JmsTemplate类,这是一个模板类,用于简化发送和...

    spring 与ACTIVEMQ整合

    一、Spring与ActiveMQ整合基础 1. **消息中间件概念**:消息中间件是一种软件,它在不同的应用之间传递消息,实现了应用之间的解耦。ActiveMQ作为JMS(Java Message Service)的实现,支持多种协议,如TCP/IP、HTTP...

    Spring与ActiveMQ整合完整案例

    本案例将详细讲解如何将Spring与ActiveMQ整合,以提升系统的可扩展性和解耦性。 1. **Spring框架**:Spring是一个全方位的开发框架,提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...

    ActiveMQ整合Spring(多消费者)

    Spring与ActiveMQ整合时,还可以支持JMS事务,确保消息的一致性。`JmsTemplate`提供了`execute`方法,可以执行一个回调操作并在事务范围内发送消息。 7. **消息确认**: ActiveMQ支持自动确认和客户端确认两种...

    spring 整合 activemq 生产者和消费者 案例源码

    Spring整合ActiveMQ是Java消息服务(JMS)在Spring框架中的应用,用于实现生产者与消费者的解耦。在这个案例中,我们将深入探讨如何配置和使用这两个组件,以便于理解它们的工作原理。 首先,ActiveMQ是Apache软件...

    spring整合Activemq源码

    总结,`spring整合Activemq源码`项目展示了如何在Spring和SpringMVC环境中利用ActiveMQ实现消息的发布与订阅。通过理解这些知识点,开发者能够更好地理解和实践消息队列在实际项目中的应用,提升系统的稳定性和扩展...

    Spring+ActiveMQ整合实例代码工程

    **Spring与ActiveMQ整合详解** 在Java开发中,Spring框架是极为重要的应用基础,而ActiveMQ作为Apache出品的一款开源消息中间件,常被用于实现应用间的异步通信和解耦。本实例代码工程"Spring+ActiveMQ整合实例代码...

    Spring和ActiveMQ的整合实例源码

    当我们谈论Spring与ActiveMQ的整合时,主要涉及的是Spring的JMS模块。这个模块允许我们轻松地与消息中间件如ActiveMQ进行交互,从而实现解耦和异步处理。下面将详细介绍这个整合过程中的关键知识点: 1. **JMS...

    基于Maven的Spring与ActiveMQ整合的简单实例

    在Spring与ActiveMQ整合的项目中,Maven可以帮助我们管理各种库的依赖关系。首先,我们需要在`pom.xml`文件中添加Maven的配置,包括项目的基本信息和所需的依赖。例如,我们需要添加Spring和ActiveMQ的相关依赖: `...

    ActiveMQ-P2P文本消息+Spring和ActiveMQ的整合实例源码

    队列具有先进先出(FIFO)的特性,即每个消息只能被一个消费者消费一次,一旦被消费,消息就会从队列中移除。 **Spring 和 ActiveMQ 的整合** Spring 框架提供了与 ActiveMQ 集成的能力,使得开发者可以轻松地在 ...

    spring整合activemq的maven工程

    现在,我们将深入探讨如何将Spring与ActiveMQ整合,并使用Maven进行项目构建。 首先,我们需要理解Spring与ActiveMQ整合的基本概念。Spring通过其`spring-jms`模块提供了对JMS的支持,可以方便地与消息代理如...

    ActiveMQ整合spring的Demo

    ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...

    Spring整合ActiveMQ实现队列和主题发布订阅通信

    通过这个DEMO,你将了解如何在Spring应用中集成ActiveMQ,创建消息的生产者和消费者,并且理解队列和主题这两种不同的通信模式。实际项目中,可以根据需求调整配置,例如设置事务管理、消息确认策略等,以实现更复杂...

    Spring与ActiveMQ完整实例源码下载 Maven 版.zip

    《Spring与ActiveMQ整合实战详解》 在Java开发领域,Spring框架和ActiveMQ是两个非常重要的组件。Spring作为一款强大的企业级应用框架,提供了一系列的工具和服务,方便开发者构建复杂的应用系统;而ActiveMQ则是...

    spring-activemq整合工程,java单独操作activemq

    在本项目中,我们将讨论如何将Spring框架与ActiveMQ消息队列进行整合,以及如何使用Java单独操作ActiveMQ。 首先,让我们理解Spring和ActiveMQ的基本概念。Spring是一个开源的应用框架,提供了AOP(面向切面编程)...

    spring配置activemq详解

    总之,"spring配置activemq详解"是一个涵盖Spring与ActiveMQ整合的深度话题,涉及了从项目配置到消息生产和消费的全过程。通过理解和实践这些知识点,开发者能够构建出稳定、高效的分布式消息处理系统。

    activemq整合spring完整实例代码(内含所有相关jar包)

    将ActiveMQ与Spring整合,可以方便地在Spring应用中使用消息队列,简化配置,并提供事务性消息支持。 这个实例代码是将ActiveMQ与Spring进行整合的一个实际项目,可以在Tomcat服务器上运行。由于提供了所有必要的...

    spring+activemq

    通过使用`ConnectionFactory`和`MessageListenerContainer`,开发者可以轻松地实现生产者(发送消息)和消费者(接收消息)的角色。Spring还支持声明式事务管理,确保消息传输的可靠性和一致性。 其次,**ActiveMQ...

    Spring整合ActiveMQ简单实例

    Spring 框架与 ActiveMQ 的整合,使得开发者能够轻松地在 Spring 应用程序中使用消息中间件。本文将详细阐述如何实现这一整合,以及其中涉及的关键知识点。 首先,**ActiveMQ** 是 Apache 开源项目,是基于 Java 的...

    activemq整合spring

    标题中的“activemq整合spring”指的是在Java环境中,如何将Apache ActiveMQ,一个流行的开源消息代理和消息中间件,与Spring框架集成,以便利用Spring的便利性来管理ActiveMQ的配置和操作。ActiveMQ提供了发布/订阅...

Global site tag (gtag.js) - Google Analytics