微服務架構中的程序間通訊(程序間通訊機制一)

2021-10-07 09:28:08 字數 985 閱讀 3850

1.1 rest

1.1.1 概念

rest是一種使用http協議的程序間通訊機制。

rest中的乙個關鍵概念是資源,它通常表示單個業務物件,例如:客戶/產品/業務物件的集合。

rest使用http動詞操作資源,使用url引用這些資源,例如:get請求返回資源的表示形式

1.1.2 grpc

用於編寫跨語言客戶端和服務端的框架。

grpc api由乙個或多個服務和請求/響應訊息定義組成。

grpc使用protocol buffers(標記格式)作為訊息格式。

1.1.3 使用斷路器模式處理區域性故障

斷路器:遠端過程呼叫的**,在連續失敗次數超過指定閾值後的一段時間內,這個**會立刻拒絕其他呼叫。 

解決思路:

1、必須讓遠端過程呼叫**有正確處理無響應服務的能力。(響應次數)

2、需要決定如何從失敗的遠端服務中恢復。

1.1.4 服務發現機制

概念:關鍵元件是服務登錄檔,是包含服務例項網路位置資訊的乙個資料庫。

實現服務發現的兩種主要方式:

1、服務及其客戶直接與服務登錄檔互動;

自註冊模式和客戶端發現模式的組合。

自註冊:服務例項向服務登錄檔註冊自己;

客戶端發現:客戶端從服務登錄檔檢索可用服務例項的列表,並在它們之間進行負載均衡。

2、通過部署基礎設施來處理服務發現(建議使用,沒有語言或框架的限制)

第三方註冊(註冊伺服器)模式和服務端發現模式

第三方註冊:服務例項由第三方自動註冊到服務登錄檔;

客戶端發現模式:客戶端向路由器發出請求,路由器負責服務發現。

筆記來自:《微服務架構設計模式》一書,作者 [美] 克里斯·理查森 著,喻勇譯  第三章 

php程序間通訊 yoc PHP程序間通訊

php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...

程序間通訊

實現程序間資料共享除了常用的記憶體檔案對映外,對於一些非檔案的資料共享可以直接使用wm copydata。如果需要在程序a傳遞資料到程序b,簡單的實現如下 在程序a中 cstring strdatatosend t hello 需要傳遞的資料 hwnd hwndreceived 程序b的接收資料視窗...

程序間通訊

最近做專案遇到奇怪的問題,我在主線程中建立乙個工作執行緒。在工作執行緒中用sendmessage向主線程傳送訊息,通知主線程操作office 物件。getactiveobject時提示 hr 0x8001010d 因為應用程式正在傳送乙個輸入同步呼叫,所以無法執行傳出的呼叫。我把sendmessag...