微服务项目
项目是以微信订单后台功能为例,模拟从对业务进行微服务划分开始,然后通过运用Spring Cloud常用组件使项目微服务架构不断完善、优化的过程。主要从以下几个部分循序渐进地完成本项目开发,并对每个部分的环境搭建、设计分析、关键步骤和代码做详细阐述。
第一部分从商品服务功能、订单服务功能两大模块的开发入手,将两大业务模块做成两个独立的微服务模块,并注册到微服务中心EurekaServer中。
第二部分根据Spring Cloud中基于Feign的服务间的远程调用,实现订单模块对商品模块部分功能的访问,为了减少模块之间代码冗余,降低模块之间的耦合度,将项目改造为多模块结构,模块之间访问时通过引入Maven依赖实现。
第三部分根据Spring Cloud分布式配置的相关知识来配置Git仓库,方便存储项目的配置文件,使配置文件和项目文件分离,配置文件修改后不需要重启服务,请求刷新接口后即可直接生效。
第四部分将消息队列应用到订单服务模块和异步扣库存功能,采用RabbitMQ消息框架和Spring Stream来实现。
第五部分在HTTP请求到达微服务之前,设计基于Spring Cloud Zuul的网关,实现客户端访问多个微服务的统一入口,根据不同请求选择访问不同的微服务,并在访问微服务之前通过设置过滤器实现权限控制、API监控等功能。
需要领取完整笔记点赞文章后添加小助理vx:bjmsb2020 即可
项目总体功能描述
1.项目功能需求介绍
本章案例主要涉及微信后台下单系统的核心功能模块:商城后台商品服务、订单服务,具体需求如下。
(1)商品服务
-
查询商品类别。
-
查询所有在架的商品。
-
商品库存更新,此功能涉及微服务间的调用。
(2)订单服务
-
查询商品信息,根据用户订单中的商品ID查询商品列表,涉及微服务间的调用。
-
查询订单信息,这里是根据订单ID查询订单详细信息。
-
订单信息校验,主要检查买家提交订单中的必填项,如买家微信号、地址、姓名、手机号等,并校验其输入格式是否正常。
-
计算总价,根据订单项中的商品价格和购买数量,计算订单总价。
-
扣除库存,用户下单成功后,商品库存数量需要更新。此功能涉及微服务间调用和消息队列的使用。
-
订单入库,将完整的订单信息表保存到订单表,同时将跟订单对应的所有订单项保存到订单项表中,这里涉及事务管理。
2.技术框架
实战涉及的技术包括:Spring Cloud Greenwich全家桶组件(Greenwich版本是基于Spring Boot 2.1.x版本构建的)、Redis缓存、消息队列RabbitMQ、Spring Cloud Bus、Spring Cloud Stream。分布式配置存储使用Git,项目管理工具采用Maven。
全篇章节目录展示
Eureka Server 实现高可靠
配置仓库
需要领取完整笔记点赞文章后添加小助理vx:bjmsb2020 即可