abbitTemplate中convertSendAndReceive方法與convertAndSend方法的區別

場景
這裏只展示核心的代碼,完整的代碼請參見 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章