Go - 散布式微服务

环境搭建

wget https://go.dev/dl/go1.17.2.linux-amd64.tar.gzsudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gzgo versionexport GOBIN=$GOPATH/binexport PATH=$GOPATH:$PATHexport GOROOT=/usr/local/goexport GOPROXY=https://goproxy.cn/,direct# goctlgo install github.com/zeromicro/go-zero/tools/[email protected]

服务拆分

一个商城我的项目能够拆分为用户服务(user)、订单服务(order)、产品服务(product)、领取服务(pay)...每个服务都能够再分为 api 服务和 rpc 服务api 服务对外,可提供给 app 调用rpc 服务是对内的,可提供给外部 api 服务或者其余 rpc 服务调用

创立我的项目

mkdir mall && cd mall && go mod init mallmkdir service && cd service

用户服务

api服务端口: 8000rpc服务端口: 9000
login用户登录接口login用户登录接口
register用户注册接口register用户注册接口
userinfo用户信息接口userinfo用户信息接口
...
mkdir -p user/api user/rpc user/model

产品服务

api服务端口: 8001rpc服务端口: 9001
create产品创立接口create产品创立接口
update产品批改接口update产品批改接口
remove产品删除接口remove产品删除接口
detail产品详情接口detail产品详情接口
...
mkdir -p product/api product/rpc product/model

订单服务

api服务端口: 8002rpc服务端口: 9002
create订单创立接口create订单创立接口
update订单批改接口update订单批改接口
remove订单删除接口remove订单删除接口
detail订单详情接口detail订单详情接口
...
mkdir -p order/api order/rpc order/model

领取服务

api服务端口: 8003rpc服务端口: 9003
create领取创立接口create领取创立接口
detail领取详情接口update领取详情接口
callback领取回调接口remove领取回调接口
...
mkdir -p pay/api pay/rpc pay/model
$ tree mall                                                    mall├── common├── go.mod└── service    ├── order    │   ├── api    │   ├── model    │   └── rpc    ├── pay    │   ├── api    │   ├── model    │   └── rpc    ├── product    │   ├── api    │   ├── model    │   └── rpc    └── user        ├── api        ├── model        └── rpc

用户服务

产品服务

订单服务

领取服务

Auth 验证

服务监控

链路追踪

分布式事务

参考

https://github.com/zeromicro/go-zero/blob/master/readme-cn.mdhttps://learnku.com/articles/64566