如果乙個系統被拆分成多個微服務,那麼每個微服務間需要互相通訊協作才能作為乙個整體對外服務。而系統間的通訊協作通常有兩種,http/rpc通訊與訊息通訊。
http/rpc通訊的優點是通訊實時,不過服務之間的耦合性高,類似使用fegin元件實現遠端過程呼叫時,由於耦合性較高,為了避免出現服務雪崩的情況,還得引入容錯元件,如sentinel,hystrix等。
訊息通訊的話,主要就是降低了服務之間的耦合性,提高了系統的處理能力和響應速度,不過通訊卻不是實時的了。
http/rpc通訊與訊息通訊並不是說二者選其一,完全可以配合使用,對於那些實時性不高的業務鏈路,可以把鏈路上依賴性不強一些業務操作剝離出來,使用訊息通訊方式來做通訊,加快請求響應速度。而對於那些強耦合的業務,就不能採用訊息通訊的方式,得使用http/rpc通訊來保證業務流程的準確性,從而保證資料的一致性。
訊息佇列通訊
一 訊息佇列概念 訊息佇列就是乙個訊息的鍊錶。而一條訊息可以看做乙個記錄,具有特定的格式,程序可以按照一定的規則新增新訊息,另乙個程序可以從訊息佇列中獨自訊息。二 訊息佇列函式 1.建立 開啟訊息佇列 man msgget key t key int msg 返回值 成功 返回訊息佇列的id 失敗 ...
Windows執行緒通訊與訊息對映
在標頭檔案中加入乙個定義使用者訊息的語句 const wm threadended wm user 100 自定義執行緒訊息再在標頭檔案中加入訊息處理函式的宣告 afx msg afx msg long onthreadended wparam wparam,lparam lparam 宣告訊息處理...
面向訊息的持久通訊與面向流的通訊
一 面向訊息的持久通訊 訊息佇列系統為持久非同步通訊提供多種支援,本質是提供訊息的中介儲存能力,這樣就不需要訊息傳送方和接收方在訊息傳輸過程中都保持啟用狀態。訊息佇列模型 應用程式可以通過在特定佇列中插入訊息來進行通訊。訊息由一系列通訊伺服器依次進行 最終送達目的地。即使在訊息傳送過程中接收方的機器...