微服务项目
项目是以微信订单后台功能为例,模拟从对业务进行微服务划分开始,然后通过运用Spring Cloud常用组件使项目微服务架构不断完善、优化的过程。主要从以下几个部分循序渐进地完成本项目开发,并对每个部分的环境搭建、设计分析、关键步骤和代码做详细阐述。
第一部分从商品服务功能、订单服务功能两大模块的开发入手,将两大业务模块做成两个独立的微服务模块,并注册到微服务中心EurekaServer中。
第二部分根据Spring Cloud中基于Feign的服务间的远程调用,实现订单模块对商品模块部分功能的访问,为了减少模块之间代码冗余,降低模块之间的耦合度,将项目改造为多模块结构,模块之间访问时通过引入Maven依赖实现。
第三部分根据Spring Cloud分布式配置的相关知识来配置Git仓库,方便存储项目的配置文件,使配置文件和项目文件分离,配置文件修改后不需要重启服务,请求刷新接口后即可直接生效。
第四部分将消息队列应用到订单服务模块和异步扣库存功能,采用RabbitMQ消息框架和Spring Stream来实现。
第五部分在HTTP请求到达微服务之前,设计基于Spring Cloud Zuul的网关,实现客户端访问多个微服务的统一入口,根据不同请求选择访问不同的微服务,并在访问微服务之前通过设置过滤器实现权限控制、API监控等功能。
项目总体功能描述
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实现高可靠
配置仓库
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容