Go - 分布式微服务

Go - 分布式微服务

环境搭建

wget https://go.dev/dl/go1.17.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
go version

export GOBIN=$GOPATH/bin
export PATH=$GOPATH:$PATH
export GOROOT=/usr/local/go
export GOPROXY=https://goproxy.cn/,direct

# goctl
go 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 mall
mkdir 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.md
https://learnku.com/articles/64566

你可能感兴趣的:(gogo-zero)