解決使用RabbitTemplate操作RabbitMQ,發生The channelMax limit is reached. Try later.問題


使用RabbitTemplate操縱RabbitMQ,每個RabbitTemplate等於一個connection,每個connection最多支持2048個channel,當hannel達到2048時,會報錯org.springframework.amqp.AmqpResourceNotAvailableException: The channelMax limit is reached. Try later

解決這個問題,有兩個思路:

一是限制發送的消息數量,也就是控制channel的數量;

二是增加connection,也就是RabbitTemplate;

我使用的是第二種,增加RabbitTemplate,發送時,產生一個隨機數,命中一個RabbitTemplate執行發送任務,這樣每個connection的channel數,不會太高,大致在450-500個。並且限制發送的數量和頻率,發送一定數量的消息后,休眠一段時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM