javascript
java监控队列_java-Spring Rabbit监听输出队列或接收
我正在開發(fā)具有Rabbitmq支持的應(yīng)用程序.因此,我有一個消費者和一個生產(chǎn)者.我需要在兩種方法之間做出決定,如何在兩者之間建立通信.
第一種方式
public void send(){
//send to consumer and forget
rabbitTemplate.convertAndSend("","routing-key",my object);
//waiting for output queue and messages from consumer
while(true){
//receive something.
if(corellationID==what we need){
//do what we need
break;
}
}
}
第二種方式
public void send(){
//send to consumer and wait for result
Object o=rabbitTemplate.convertSendAndReceive("","routing-key",my object);
}
哪種方法在高負(fù)載下會更快速,更穩(wěn)定地工作?也許還有另一種更有效的方法可以做到這一點.謝謝
解決方法:
與第一種方法一樣,第二種方法必須實現(xiàn)第二種方法已經(jīng)完成的工作:
>創(chuàng)建相關(guān)ID
>維護地圖
>從答復(fù)隊列出隊消息
>將回復(fù)消息與生產(chǎn)者相關(guān)聯(lián)
> …
最有效的方法是沒有等待回復(fù)的線程.因此以異步方式工作:發(fā)送消息的線程可能不是接收答復(fù)的線程. Have a look at the documentation
標(biāo)簽:rabbitmq,spring,java
來源: https://codeday.me/bug/20191120/2044004.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java监控队列_java-Spring Rabbit监听输出队列或接收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker安装mysql指定_Dock
- 下一篇: Java建造圆判断是否在园内_java