1
我们有一个应用程序,每分钟可以消耗约300个JMS消息。我们需要将速度提高到每分钟3000条。提高应用程序的JMS消息消耗速度
我创建了一个简单的测试程序,它从队列中读取消息并记录消息。不涉及处理,所以我期望高速。但是,日志记录仍在以每分钟约400条消息的速度发生。
下面是我的程序
<int-jms:message-driven-channel-adapter id="testJmsInboundAdapter"
auto-startup="true"
destination="testQueueDestination"
connection-factory="testConnectionFactory"
channel="messageTransformerChannel" />
<int:channel id="messageTransformerChannel" />
<int:service-activator
id="loggerActivator"
input-channel="messageTransformerChannel"
method="log"
ref="logger" />
的记录方法的摘录只需登录该消息
public void log(final GenericMessage<Object> object) {
LOGGER.info("Logging message" + object);
}
任何建议,我应该看的瓶颈。是否有可以每分钟使用Spring集成的消息驱动通道适配器
谢谢=“5 “将处理速度提高到每分钟2k条消息 – vjm
您能否解释并发消费者财产如何运作?如果将并发消费者值设置为5,它是否会创建5个线程,这些线程同时从JMS队列开始读取。另外,如果最终消费上述示例中检索到的消息的记录器Bean是范围原型的 - 将为每个线程创建不同的记录器bean,或者将所有线程引用同一个记录器bean – vjm
是的,他们将同时执行此操作。记录器bean将仅为Service Activator端点创建一次,并且仅在应用程序启动应用程序期间创建。一切都休息了,请阅读'DefaultMessageListenerContainer.setConcurrency(String concurrency)'JavaDocs。 –