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

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

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

3.1 用户服务(user)

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

3.2 产品服务(product)

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

3.3 订单服务(order)

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

3.4 支付服务(pay)

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

3.5 创建项目目录

  • 创建 mall 工程
1
2
bash复制代码$ mkdir mall && cd mall
$ go mod init mall
  • 创建 common 目录
1
bash复制代码$ mkdir common
  • 创建 service 目录
1
bash复制代码$ mkdir service && cd service
  • 创建 user apiuser rpcuser model 目录
1
2
3
bash复制代码$ mkdir -p user/api
$ mkdir -p user/rpc
$ mkdir -p user/model
  • 创建 product apiproduct rpcproduct model 目录
1
2
3
bash复制代码$ mkdir -p product/api
$ mkdir -p product/rpc
$ mkdir -p product/model
  • 创建 order apiorder rpcorder model 目录
1
2
3
bash复制代码$ mkdir -p order/api
$ mkdir -p order/rpc
$ mkdir -p order/model
  • 创建 pay apipay rpcpay model 目录
1
2
3
bash复制代码$ mkdir -p pay/api
$ mkdir -p pay/rpc
$ mkdir -p pay/model
  • 最终项目目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bash复制代码├── 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)》

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%