當前位置:網站首頁>初識MQ-01

初識MQ-01

2022-05-13 16:00:10Fairy要carry

目錄

 同步調用:

异步調用

 初識MQ


 

 

 同步調用:

比如這裏的支付服務,需要等待訂單服務、短信服務...執行完畢才能執行,這樣支付整個流程完畢需要500ms

然後如果訂單、倉儲等其中一個服務掛掉了,那麼支付服務請求請求不了,掛掉的服務越來越多,級聯失敗;——>服務提供者出現問題,那麼整個微服務都會出現故障;

資源浪費:消費者需要等待服務提供者響應,不能幹其他事情只能幹等;

耦合度較高:每次加入新的需求,還需要動原來的代碼——>比如:訂單加了一個用戶積分,那麼Feign模塊中還要加相關代碼,以便訂單模塊調用,訂單模塊還需要+調用用戶積分的代碼:需要改動訂單代碼;

再來一個場景:比如說,我們要删除某個業務,需要將支付服務中的調用某個業務的相關代碼删除;


异步調用

利用了一個Broker進行事件通知

優點:

級聯失敗問題得到解决:比如訂單服務掛了,它並不會影響支付服務,自己重啟就行了
耦合度低:因為支付服務不需要調用其他服務了,而是通過發布事件,Broker對其他事務進行通知,你支付服務該幹嘛幹嘛,發布完消息返回用戶支付成功——>支付服務發布支付成功消息給到Broker,然後Broker進行通知——>對其他服務,然後其他服務執行即可;

吞吐量提昇:因為不存在服務之間的調用,所以時間較少(發布信息),能發送的數據就能够越多——>犧牲:消息的延遲,從發送到接收

流量削峰:Broker作為緩沖,將並發請求保存起來,然後通過微服務裏面的實現的功能,對請求進行放行——>從而達到流量削峰的效果

缺點:

异步調用只是通知你幹一件事情,並不知道你幹沒幹完(通過Broker發送請求讓你幹事情,從而達到解耦的效果)

 流量削峰:

Broker作為緩沖區對請求進行緩存;

 

 

 初識MQ

 

 RabbitMQ:一般用於業務之間的通信,安全穩定。

 KafKa:一般用於海量數據處理,單機吞吐量高:每秒鐘能發送的數據大小來分析

版權聲明
本文為[Fairy要carry]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/133/202205131556329464.html

隨機推薦