- 1、学习课程
- 2、服务拆分
- 2.1 按业务服务拆分
- 2.2 按调用方式拆分
- 3、创建项目目录
- 3.1 在 code 中新建项目
- 3.2 创建 mall 工程
- 3.3 创建 common 目录
- 3.4 创建 service 目录
- 3.5 创建 user api,user rpc,user model 目录
- 3.6 创建 product api,product rpc,product model 目录
- 3.7 创建 order api,order rpc,order model 目录
- 3.8 创建 pay api,pay rpc,pay model 目录
- 3.9 最终项目目录
- 4、系列
带你十天轻松搞定 Go 微服务系列(二)
2、服务拆分 2.1 按业务服务拆分- 用户服务(user)
- 订单服务(order)
- 产品服务(product)
- 支付服务(pay)
- 售后服务(afterSale)
- … …
| 区别 | API 服务 | RPC 服务 |
|---|---|---|
| 传输协议 | 基于 HTTP 协议 | 可以基于 HTTP 协议,也可以基于 TCP 协议 |
| 传输效率 | 如果是基于 http1.1 的协议,请求中会包含很多无用的内容,如果是基于 HTTP2.0,那么简单的封装下可以作为一个 RPC 来使用,这时标准的 RPC 框架更多的是服务治理。 | 使用自定义的 TCP 协议,可以让请求报文体积更小,或者使用 HTTP2 协议,也可以很好的减小报文体积,提高传输效率 |
| 性能消耗 | 大部分是基于 json 实现的,字节大小和序列化耗时都比 thrift 要更消耗性能 | 可以基于 thrift 实现高效的二进制传输 |
| 负载均衡 | 需要配置 Nginx、HAProxy 配置 | 基本自带了负载均衡策略 |
| 服务治理:(下游服务新增,重启,下线时如何不影响上游调用者) | 需要事先通知,如修改 NGINX 配置。 | 能做到自动通知,不影响上游 |
$ cd gonivinck/code/3.2 创建 mall 工程
$ mkdir mall && cd mall $ go mod init mall3.3 创建 common 目录
$ mkdir common3.4 创建 service 目录
$ mkdir service && cd service3.5 创建 user api,user rpc,user model 目录
$ mkdir -p user/api $ mkdir -p user/rpc $ mkdir -p user/model3.6 创建 product api,product rpc,product model 目录
$ mkdir -p product/api $ mkdir -p product/rpc $ mkdir -p product/model3.7 创建 order api,order rpc,order model 目录
$ mkdir -p order/api $ mkdir -p order/rpc $ mkdir -p order/model3.8 创建 pay api,pay rpc,pay model 目录
$ mkdir -p pay/api $ mkdir -p pay/rpc $ mkdir -p pay/model3.9 最终项目目录
├── 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.mod4、系列
学习笔记:带你十天轻松搞定 Go 微服务系列(一)- 环境搭建
学习笔记:带你十天轻松搞定 Go 微服务系列(二)- 服务拆分
学习笔记:带你十天轻松搞定 Go 微服务系列(三)- 用户服务
学习笔记:带你十天轻松搞定 Go 微服务系列(四)- 产品服务
学习笔记:带你十天轻松搞定 Go 微服务系列(五)- 订单服务
学习笔记:带你十天轻松搞定 Go 微服务系列(六)- 支付服务
学习笔记:带你十天轻松搞定 Go 微服务系列(七)- RPC 服务 Auth 验证
学习笔记:带你十天轻松搞定 Go 微服务系列(八)- 服务监控
学习笔记:带你十天轻松搞定 Go 微服务系列(九)- 链路追踪
学习笔记:带你十天轻松搞定 Go 微服务系列大结局(十)- 分布式事务



