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服务 | 端口: 8000 | rpc服务 | 端口: 9000 |
---|
login | 用户登录接口 | login | 用户登录接口 |
register | 用户注册接口 | register | 用户注册接口 |
userinfo | 用户信息接口 | userinfo | 用户信息接口 |
... | | | |
mkdir -p user/api user/rpc user/model
产品服务
api服务 | 端口: 8001 | rpc服务 | 端口: 9001 |
---|
create | 产品创立接口 | create | 产品创立接口 |
update | 产品批改接口 | update | 产品批改接口 |
remove | 产品删除接口 | remove | 产品删除接口 |
detail | 产品详情接口 | detail | 产品详情接口 |
... | | | |
mkdir -p product/api product/rpc product/model
订单服务
api服务 | 端口: 8002 | rpc服务 | 端口: 9002 |
---|
create | 订单创立接口 | create | 订单创立接口 |
update | 订单批改接口 | update | 订单批改接口 |
remove | 订单删除接口 | remove | 订单删除接口 |
detail | 订单详情接口 | detail | 订单详情接口 |
... | | | |
mkdir -p order/api order/rpc order/model
领取服务
api服务 | 端口: 8003 | rpc服务 | 端口: 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