微服务实战(二十一) 从一个小demo开始

介绍

之前的章节主要是把微服务架构的概念,常用组件逐个实际测验。

接下来就是开始真正项目实战,整体计划是这样的:

1、使用微服务架构实现一个秒杀下单的应用

2、集成注册中心、链路追踪、限流断路、聚合API文档等组件,整合到统一的界面,实现单点登录

3、容器化部署,在服务器上进行真实部署(规模在10台以上),实践CI / CD 

4、模拟压力测试,针对互联网高并发场景进行实际测验和性能优化

5、原理探索,深入到框架源码中进行分析

 

目前DEMO是利用碎片时间开发,等到完整后再开放源码

应用截图

业务部分拆分为4个微服务工程,分别是订单服务、商品服务、库存服务、用户服务

数据库分布:

核心流程:

  • 用户登录

使用jwt实现token,业务相关的接口携带token进行验证

微服务token的实现见   :  https://blog.csdn.net/u011177064/article/details/105177960

  • 商品查询

商品查询包含商品信息、库存信息,涉及到微服务间RPC调用,使用feign实现

  • 下单

由订单服务发起,过程中涉及到商品服务的查询、库存服务的扣减、用户服务的余额扣减

SpringCloud组件界面集成

注册中心使用Nacos,注册上来的服务进行统一管理,可设置负载均衡权重,配置管理

链路追踪组件 skywalking

对微服务过程中的调用链路进行追踪,以订单服务为例,可见它和其他微服务的拓扑关系

可监控接口调用过程中的调用关系以及耗时

聚合API文档

使用Swagger将各微服务的文档聚合到网关中统一管理

后续

分布式事务:下单过程中的 库存、余额扣减失败 则将整个下单回滚

限流熔断机制:设定微服务的流量阈值,以及熔断处理