[英]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.