GoMicro學習筆記 Micro和GoMicro

2021-10-13 05:19:48 字數 1134 閱讀 6674

micro是執行時工具集,而gomicro則是後端服務框架。

如下圖所示,micro類似於中間層的作用,手機,web等通過micro中相應的api,bot,web等工具,呼叫gomicro框架中的服務

micro api主要功能在於將http請求轉向到內部服務。即通過micro api將內部服務暴露給外部http請求。

micro proxy可以讓服務客戶端直接呼叫服務。與mirco api不同的是,api主要是將rpc轉成http形式給外部,而proxy則是只能使用rpc形式

乙個具體例項化的服務分為客戶端和服務端。其中客戶端主要用於傳送rpc請求和廣播,而服務端主要用於接收rpc請求和廣播。

需要五個元件來支撐收發rpc,即broker(非同步通訊元件)codec(資料編碼元件)registry(服務註冊元件)selector(客戶端均衡器)transport(同步通訊元件)

其中,codec用於將客戶端請求的資料編碼後給服務端,服務端收到訊息後再解碼得到資料進行處理。

registry將服務進行註冊(註冊到註冊中心),selector和registry一起協作,獲取所要呼叫的服務的具體ip,從而傳送請求。

服務層在啟動後會啟動乙個服務,服務會去呼叫register,將服務到註冊中心進行註冊。

之後客戶端需要服務的時候,會先去啟動selector,selector去registry中查詢註冊的服務,如果找不到則去註冊中心處查詢。

找到服務後會將相關資訊換地給transport,transport將請求資料通過codec編碼後傳遞到服務端,服務端反編碼後處理資料。處理完後將資料編碼後返回給客戶端。

broker則類似於上述的流程,不過中間又多了一層中介軟體。broker會將資料先給中介軟體(mq一類的),服務端從中介軟體獲取推送的資料。

go micro 微服務學習筆記(2)

通過.proto自動生成json介面資料時,會預設新增omitempty,此時若字段為空 例如空串,0,nil 則返回的json資料會忽略該欄位,如下圖自動生成的資料。通過查閱其原始碼 路徑protoc gen micro generator generator.go 可以發現其生成時會自動新增 o...

go micro學習日記 四 熔斷

熔斷後預設方法 func defaultprods rsp inte ce result rsp.services.prodlistresponse result.data models func newprod id int32,pname string services.prodmodel cl...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...