[英]Spring DSL Solace Integration: How to set max message per poll
我正在使用spring,dsl,solace与spring boot集成。 我的一个订阅者应用程序能够每秒轮询约80条消息,而4个订阅者每秒可以轮询约125条消息。 我想每秒至少处理500条消息。 我的JMS流程如下所述-
public @Bean IntegrationFlow defaultJmsFlow()
{
return IntegrationFlows.from(
//read JMS topic
Jms.messageDrivenChannelAdapter(this.connectionFactory).destination(this.config.getInputQueueName()).errorChannel(errorChannel()).configureListenerContainer(c ->
{
final DefaultMessageListenerContainer container = c.get();
container.setSessionTransacted(true);
container.setMaxConcurrentConsumers(10);
container.setConcurrentConsumers(4);
}).get())
.channel(messageProcessingChannel()).get();
}
阅读消息后,我会将其发送到DirectChannel。 需要进行任何特殊的配置来提高我的应用程序的性能,以便每秒至少处理500条消息。
将Spring JMS与Solace集成时,强烈建议缓存使用者。 这样,连接保持持久,并且消息将快速传递给使用者,而不会产生解除绑定,断开连接和重新连接的开销。 可以在defaultMessageListenerContainer中使用container.setCacheLevel(3)进行设置。
如果使用并发使用者从同一Solace队列中读取消息,请确保Solace队列是非独占的。 排他队列将消息传递给一个活动的使用者,而非排他队列将消息循环传递给所有使用者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.