一、同步調用
優勢:時效性強,等待到結果后才返回
缺點:
- 拓展性差
- 性能下降
- 級聯失敗問題
二、異步調用
優勢:
- 耦合度低,拓展性強
- 異步調用,無需等待,性能好
- 故障隔離,下游服務故障不影響上游業務
- 緩存消息,流量削峰填谷
缺點:
- 不能立即得到調用結果,時效性差
- 不確定下游業務執行是否成功
- 業務安全依賴于Broker(消息代理)的可靠性
三、初識MQ
MQ(Message Queue),中文是消息隊列,字面來看就是存放消息的隊列。也就是異步調用中的Broker
四、RabbitMQ
RabbitMQ是基于Erlang語言開發的開源消息通信中間件
RabbitMQ官網
1.安裝
基于Docker來安裝RabbitMQ
docker run \-e RABBITMQ_DEFAULT_USER=itheima \-e RABBITMQ_DEFAULT_PASS=123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hm-net\-d \rabbitmq:3.8-management