目录
- 一、微服务划分图
- 二、前后端分离
- 三、网关
- 四、业务微服务群
- 五、第三方服务
- 六、服务治理
- 七、状态监控
- 八、数据层
一、微服务划分图
二、前后端分离
这个项目是基于前后端分离的开发,需要创建一些前端项目,admin-vue是面向工作人员的后台管理系统,shop-vue是面向公众访问的web网站系统,当然也可以有app、小程序等。
三、网关
首先,请求从前端通过网关,到达业务的微服务群,这个网关还可以完成一些其它的工作,比如:限流、熔断降级等。等请求到达业务的微服务群之后,这些业务就进行处理,当然,可以有更多其它的业务,下面列举的业务,就是我们要编写的业务。
四、业务微服务群
- 商品服务:商品的上下架,商品的增删改查等
- 支付服务:集成了支付的功能
- 优惠服务:商品相关的优惠信息
- 用户服务:用户的个人中心,用户的售货地址列表等
- 仓储服务:数据藏在哪个仓库的哪里
- 订单服务:完成订单相关的功能,完成一些定删的增删改查。
- 检索服务:使用ElasticSearch来做全文检索服务。
- 中央认证服务:通过它来做登录注册
- 购物车服务:购物车里面商品的增删改查,通过购物车来结账等
- 独立后台管理系统:想要通过后台来添加一些优惠信息,或者新增一些商品等,那后台管理系统也是给相应的服务发相应的请求
五、第三方服务
服务在编写期间,可能要依赖一些第三方的服务,比如:物流、短信、金融、身份认证,直接调用它们的接口即可
六、服务治理
在微服务治理期间,如何让他们有条不紊、健壮地运行起来呢?
- 使用Nacos作为注册中心
- 使用Nacos作为配置中心
- Seata来做分布式事务
- Sentinel来做服务容错。
这些组件是阿里巴巴SpringCloud所提供的。
而Feign、Gateway、Sleuth、Zipkin这四个组件是SpringCloud提供的。
七、状态监控
关于整个应用的状态监控,则使用prometheus、Grafana
八、数据层
- 数据层使用Redis作为缓存
- 使用MySQL进行持久化
- 使用ShardingSphere来帮助MySQL做分库分表的操作
- 使用RabbitMQ来做消息队列
- 使用ElasticSearch来进行全文检索
- 使用阿里云的对象存储,来存储图片、视频等相关的静态文件。