微服务项目

项目是以微信订单后台功能为例,模拟从对业务进行微服务划分开始,然后通过运用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 即可