場景
這裏只展示核心的代碼,完整的代碼請參見 SpringBoot整合RabbitMQ(完整版)
// 向發佈訂閱模式裏面發送消息
public void sendPublish() {
for (int i = 0; i < 5; i++) {
// rabbitTemplate.convertSendAndReceive("exchange_fanout", "", "測試發佈訂閱模型:" + i);
rabbitTemplate.convertAndSend("exchange_fanout", "", "測試發佈訂閱模型:" + i);
}
}
測試結果
訪問 http://localhost:8080/sendPublish
使用 convertAndSend 方法時的結果:輸出時沒有順序,不需要等待,直接運行
使用 convertSendAndReceive 方法時的結果:使用此方法,只有確定消費者接收到消息,纔會發送下一條信息,每條消息之間會有間隔時間
總結
convertSendAndReceive(…):可以同步消費者。使用此方法,當確認了所有的消費者都接收成功之後,才觸發另一個convertSendAndReceive(…),也就是纔會接收下一條消息。RPC調用方式。
convertAndSend(…):使用此方法,交換機會馬上把所有的信息都交給所有的消費者,消費者再自行處理,不會因爲消費者處理慢而阻塞線程。
————————————————
版權聲明:本文爲CSDN博主「孔明1號」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fan521dan/java/article/details/104930982