ACT IVEMQとspring統合後の性能問題

4850 ワード

activemqを使用してメッセージを送信し、受信する必要があります.springと統合して使用します.メッセージ20000本/sを送信する予定です.
 
実際に20000件のメッセージを送るには7秒ぐらいかかります.消費者はもっと遅いです.1000本/Sしかありません.
 
私の設定は以下の通りです.
	<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
		<property name="brokerURL" value="${jms.brokerURL}" />
		<property name="userName" value="${jms.username}" />
		<property name="password" value="${jms.password}" />
		<!--          -->
		<property name="useAsyncSend" value="true" />
		<property name="alwaysSessionAsync" value="false" />
	</bean>

	<!--        ,     -->
	<bean id="JmsSenderFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
		destroy-method="stop">
		<property name="connectionFactory" ref="jmsFactory" />
		<property name="maxConnections" value="2"></property>
	</bean>

	<!--        ,       -->
	<bean id="JmsReveiverFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
		<property name="connectionFactory" ref="jmsFactory" />
		<property name="maxConnections" value="10"></property>
	</bean>

	<!-- Spring JMS Template -->
	<bean id="jmsTemplate" class="cn.xx.xx.jms.core.EFSJmsTemplate">
		<property name="connectionFactory" ref="JmsSenderFactory" />
		<property name="defaultDestination" ref="destination" />
		<!--         :false p2p;true      -->
		<property name="pubSubDomain" value="false" />
		<!-- <property name="deliveryMode" value="1"></property>
		<property name="explicitQosEnabled" value="true"></property> -->
		<!--       --> 
   		<property name="sessionTransacted" value="false" /> 
		<property name="messageConverter">
			<bean
				class="org.springframework.jms.support.converter.SimpleMessageConverter" />
		</property>

	</bean>

	<!-- Spring JMS Template -->
	<bean id="jmsTemplate2" class="org.springframework.jms.core.JmsTemplate">
		<property name="connectionFactory" ref="JmsReveiverFactory" />
		<property name="defaultDestination" ref="destination" />
		<!--         :false p2p;true      -->
		<property name="pubSubDomain" value="false" />
		<property name="messageConverter">
			<bean
				class="org.springframework.jms.support.converter.SimpleMessageConverter" />
		</property>

	</bean>

	<!--         (    ) -->
	<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
		<!--           -->
		<constructor-arg index="0" value="${jms.queueName}" />
	</bean>


	<!--       -->
	<bean id="listenerContainer"
		class="org.springframework.jms.listener.DefaultMessageListenerContainer"
		lazy-init="false">
		<property name="concurrentConsumers" value="${jms.concurrentConsumers}" />
		<property name="connectionFactory" ref="JmsReveiverFactory" />
		<property name="destinationName" value="${jms.queueName}" />
		<property name="messageListener" ref="messageConsumer" />
		<property name="pubSubNoLocal" value="true"></property>
	</bean>


	<!--       -->
	<bean id="messageConsumer" class="cn.xx.xx.jms.MessageConsumer">
		<property name="jmsTemplate2" ref="jmsTemplate2"></property>
	</bean>

	<!--      -->
	<bean id="messageProducer" class="cn.xx.xx.jms.MessageProducer">
		<property name="jmsTemplate" ref="jmsTemplate"></property>
	</bean>
 
 
avtivemqサーバーの設定は変更されていません.直接ホームページをダウンロードしてから起動します.
 
また、単独でテストクラスを書いてメッセージを送るのはspirngのjmsTemplateではないと気づきました.生産者は私の要求のスピードに達することができます.springのjmsTemplateのスピードはとても遅いです.
この問題にあった友達がいますか?資料を調べていろいろな方法を試しましたが、だめです.