乐趣区

关于golang:gokit结合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-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
暂无用

退出移动版