Spring integration MQ侦听器性能
我正在构建Docker容器,其中有一个war文件在Jetty上运行,我一直在交替进行一些设置,以查看性能是否有所提高,但到目前为止没有任何改进。每个集装箱已达到7 tps 设置是Spring integration MQ侦听器性能,spring-integration,ibm-mq,Spring Integration,Ibm Mq,我正在构建Docker容器,其中有一个war文件在Jetty上运行,我一直在交替进行一些设置,以查看性能是否有所提高,但到目前为止没有任何改进。每个集装箱已达到7 tps 设置是 <bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" r
<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="MQConnectionFactory" />
<property name="sessionCacheSize" value="10"/>
</bean>
<bean id="requestQueue" class="com.ibm.mq.jms.MQQueue">
<constructor-arg index="0" value="${queuemanager}"/>
<constructor-arg index="1" value="${incoming.queue}"/>
</bean>
<integration:poller id="poller" default="true" fixed-delay="1000" error-channel="errorChannel"/>
并发的初始设置为“1-2”,我将其更改为“10-15”。不影响性能
jmsCache设置为,但也没有变化
非常感谢您的帮助
干杯
克里斯在这里回答我自己的帖子。我们发现,问题实际上是我们的数据库池一开始设置不正确 但是为了增加侦听器数量,我不得不更改Spring集成适配器设置
<jms:message-driven-channel-adapter id="jmsIn"
destination="requestQueue"
channel="inputJsonConversionChannel"
connection-factory="cachingConnectionFactory"
error-channel="errorChannel"
concurrent-consumers="${jms_adapter_concurrent_consumers}" />
只有当并发使用者发生变化时,队列中的侦听器数量才会增加。您能告诉我们一些关于您的系统的其他情况吗?你有多少推杆?发送消息的速率是多少?您有多少个并发getter?他们是否需要处理并发消息,或者一个getter能否跟上putter?每个事务还需要做什么才能有助于了解系统性能的全貌?此时,NFT团队使用LoadRunner以100 tps模拟推杆。我有两个集装箱运行实例,这意味着我们实现了15个tps。我认为,通过在DefaultJmsListenerContainerFactory中将并发性设置为“10-15”,实际上可以允许这么多线程并行处理。应用程序的另一部分将json消息从一种格式转换为另一种格式,并将HTTP请求发送到在DB中进行插入的Api。这也是我对setConcurrency的理解。您看到有多少getter在您的队列中运行?尝试MQSC命令
显示QSTATUS(q-name)IPPROCS
我将很快提供一些更新。看起来问题实际上与数据库连接池有关。DB中有数千个会话,我们希望有几个会话。
<jms:message-driven-channel-adapter id="jmsIn"
destination="requestQueue"
channel="inputJsonConversionChannel"
connection-factory="cachingConnectionFactory"
error-channel="errorChannel"
concurrent-consumers="${jms_adapter_concurrent_consumers}" />