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

安裝

1.git clone https://github.com/ifconfigur...
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-servergit

2.啓動gRPC Client

1) go build grpc-client.go
2) ./grpc-clientgithub


若是想運行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
暫無用微服務

相關文章
相關標籤/搜索