likes
comments
collection
share

go-zero实战:让微服务Go起来——3 服务拆分

作者站长头像
站长
· 阅读数 48

一个商城项目可拆分用户服务(user),订单服务(order),产品服务(product),支付服务(pay),售后服务(afterSale),......

每个服务都可以再分为 api 服务和 rpc 服务。api 服务对外,可提供给 app 调用。rpc 服务是对内的,可提供给内部 api 服务或者其他 rpc 服务调用。

3.1 用户服务(user)

api 服务端口:8000rpc 服务端口:9000
login用户登录接口login用户登录接口
register用户注册接口register用户注册接口
userinfo用户信息接口userinfo用户信息接口
............................

3.2 产品服务(product)

api 服务端口:8001rpc 服务端口:9001
create产品创建接口create产品创建接口
update产品修改接口update产品修改接口
remove产品删除接口remove产品删除接口
detail产品详情接口detail产品详情接口
............................

3.3 订单服务(order)

api 服务端口:8002rpc 服务端口:9002
create订单创建接口create订单创建接口
update订单修改接口update订单修改接口
remove订单删除接口remove订单删除接口
detail订单详情接口detail订单详情接口
list订单列表接口list订单列表接口
paid订单支付接口
............................

3.4 支付服务(pay)

api 服务端口:8003rpc 服务端口:9003
create支付创建接口create支付创建接口
detail支付详情接口detail支付详情接口
callback支付回调接口callback支付回调接口
............................

3.5 创建项目目录

  • 创建 mall 工程
$ mkdir mall && cd mall
$ go mod init mall
  • 创建 common 目录
$ mkdir common
  • 创建 service 目录
$ mkdir service && cd service
  • 创建 user apiuser rpcuser model 目录
$ mkdir -p user/api
$ mkdir -p user/rpc
$ mkdir -p user/model
  • 创建 product apiproduct rpcproduct model 目录
$ mkdir -p product/api
$ mkdir -p product/rpc
$ mkdir -p product/model
  • 创建 order apiorder rpcorder model 目录
$ mkdir -p order/api
$ mkdir -p order/rpc
$ mkdir -p order/model
  • 创建 pay apipay rpcpay model 目录
$ mkdir -p pay/api
$ mkdir -p pay/rpc
$ mkdir -p pay/model
  • 最终项目目录
├── common           # 通用库
├── service          # 服务
│   ├── order
│   │   ├── api      # order api 服务
│   │   ├── model    # order 数据模型
│   │   └── rpc      # order rpc 服务
│   ├── pay
│   │   ├── api      # pay api 服务
│   │   ├── model    # pay 数据模型
│   │   └── rpc      # pay rpc 服务
│   ├── product
│   │   ├── api      # product api 服务
│   │   ├── model    # product 数据模型
│   │   └── rpc      # product rpc 服务
│   └── user
│       ├── api      # user api 服务
│       ├── model    # user 数据模型
│       └── rpc      # user rpc 服务
└── go.mod

项目地址:github

上一篇《go-zero实战:让微服务Go起来——2 环境搭建》

下一篇《go-zero实战:让微服务Go起来——4 用户服务(user)》

转载自:https://juejin.cn/post/7036010157075071006
评论
请登录