2017-06-01 124 views
-1

問:當消息(30,000+)氾濫時,消費者服務器建立了太多的TCP,甚至超過10,000個。爲了避免這種情況發生,在春季如何配置?如何避免在rabbitMQ中使用彈簧連接(TCP)太多

聽衆: enter image description here

sendMQ enter image description here

以下是rabbitmq.xml enter image description here

+1

歡迎使用所以,避免放置代碼的截圖,而不是直接粘貼到問題中。 –

回答

0

這個計算器的問題可能會有所幫助:How is concurrency in Spring AMQP Listener Container implemented?

快速摘錄,請參閱「併發」:

<rabbit:listener-container 
     connection-factory="myConnectionFactory" 
     acknowledge="none" 
     concurrency="10" 
     requeue-rejected="false"> 
    <rabbit:listener ref="myListener" queues="myQueue"/> 
</rabbit:listener-container> 

我沒有使用Spring XML配置,但註釋,但是這是我用來限制併發用戶的數量:

@Bean 
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { 
     SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); 
     factory.setConnectionFactory(connectionFactory()); 

     // process each message one at a time 
     factory.setConcurrentConsumers(1); 
     factory.setMaxConcurrentConsumers(1); 
     return factory; 
    } 
+0

據我所知,聽衆使用長連接,我發送消息後使用短連接到MQ。是對的嗎?如果是這樣,它是發送消息造成了太多的TCP,爲什麼需要我更改監聽器配置? – counterFish

+0

@counterFish你有我的嘗試在上面的答案。試試看。如果可行,很好,如果沒有,請隨時發表評論,並說它不適合你。 –

+0

理解,謝謝 – counterFish