go-kit結合gRpc的使用和學習

ifconfig發表於2020-12-01

地址

github.com/ifconfigure/go-kit-grpc... ,感興趣的朋友關注給個star喲♥

安裝

1.git clone github.com/ifconfigure/go-kit-grpc...

2.go mod download

簡介

結合了go-kit和grpc的學習使用,go-kit因為分層的關係,會使得程式碼生澀難讀,再加上go-kit一般是配合gRpc使用,所以便有了這個demo。

可以使用它作為專案的初始化框架,在分層的體系上儘量保持了精簡,只需要稍微花點時間理解一下每層的意義,便可以快速進行微服務開發。

TODO: 後期會引入服務註冊/發現,熔斷,降級,鏈路追蹤,感謝朋友star?一波

如果想執行純GRPC的DEMO

1.啟動gRPC Server

1) cd gRpc

2) go build grpc-server.go

3) ./grpc-server

2.啟動gRPC Client

1) go build grpc-client.go

2) ./grpc-client

如果想執行go-kit + gRpc的demo

1) cd go-kit

2) go build rpc-server.go

3) ./rpc-server

4) 切換到grpc目錄下編譯並啟動grpc-client,例:./grpc-client

目錄結構描述

├── go-kit
go-kit的主要目錄, go-kit的分層思想和微服務都應該寫在這裡面

│ ├── EndPoint
負責業務邏輯,並且返回給Handler

│ ├── Handler
負責呼叫EndPoint,也就是把EndPoint和TransPort層封裝起來,並且返回給grpc呼叫,可以理解為中間人

│ ├── TransPort
跟go-kit的思想一樣,就是負責資料傳入的處理,比如傳入檢驗等

├── gRpc
grpc的業務邏輯

│ ├── PB
生成的PB檔案放這裡

│ ├── Proto
Proto3原始檔案,為什麼和PB要分開放是因為可以單獨共享proto檔案給其它團隊生成呼叫

│ ├── Service
這裡可以單獨寫grpc裡的業務邏輯,是和go-kit分開的,如果在go-kit的endpoint寫了業務就不用在這裡寫,當然也可以在這裡寫業務透過endpoint呼叫

├── main.go
暫無用

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章