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值。它的主要思路是選取恰當的進製,可以...