springboot+RabbitMQ 問題 RabbitListener 動態隊列名稱:Attribute value must be constant


因為多機環境fanout廣播模式,每台機器需要使用自己的隊列接受消息
所以嘗試使用以下的方案

    private static final String QUEUE_NAME="foo."+IPUtils.getLocalhostIp(); @RabbitListener(queues = QUEUE_NAME) public void process(String command){ ... } 

but...果斷報錯:Attribute value must be constant

解決方案----Spring SPEL表達式閃亮登場(網上都是什么亂七八糟復雜又不好用的)

    private static final String QUEUE_NAME="foo."+IPUtils.getLocalhostIp(); @Bean public Queue queue(){ return new Queue(QUEUE_NAME,true); } @RabbitListener(queues = "#{queue.name}") public void process(String command){ ... } 

以上



作者:喬_a988
鏈接: https://www.jianshu.com/p/a0e4f45e0176
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

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



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