SA实战 ·《SpringCloud Alibaba实战》项目说明、流程设计、技术选型与模块划分

简介: SA实战 ·《SpringCloud Alibaba实战》项目说明、流程设计、技术选型与模块划分

今天与小伙伴们一起聊聊整个实战专栏最后的准备工作,包括:项目说明、流程设计、技术选型和模块划分。

项目说明

经过一段时间的反复思考,整个《SpringCloud Alibaba实战》专栏采用实战案例的形式为大家进行讲解。在案例上,选择了大家都比较熟悉的电商项目中的用户、商品和订单模块为例。一方面是这些模块的业务逻辑比较简单,另一方面,案例最终会以微服务的形式呈现给大家。

所以,各模块之间会涉及到远程调用、服务治理、服务限流、服务熔断、服务降级、服务容错等功能,会使用注册中心来注册和管理服务。

另外,微服务项目会涉及到多模块之间的调用问题,一旦某个接口或者服务出现问题,很难通过排查日志定位问题。所以,项目采用微服务架构后,就需要采用链路追踪技术来追踪和管理各个服务之间的调用关系。

图片.png

所以,采用大家都比较熟悉的电商模块,并且还能够学到这么多技术,何乐而不为呢?


项目流程设计

整个项目主要分为用户微服务、商品微服务和订单微服务,整个过程模拟的是用户下单扣减库存的操作。这里,为了简化整个流程,将商品的库存信息保存到了商品数据表,同时,使用商品微服务来扣减库存。

小伙伴们在实现时,也可以将商品库存信息单独开发一个微服务模块,主体逻辑和将库存信息放在商品微服务进行管理是一样的。各服务之间的调用流程如下。

图片.png

用户微服务、商品微服务和订单微服务的整体流程为:用户通过客户端调用订单微服务的提交订单的接口后,订单微服务会分别调用用户微服务和商品微服务的接口来查询用户信息和商品信息,并校验商品库存是否充足,如果商品库存充足的话,就会保存订单。并且会调用商品微服务的扣减库存的接口来扣减库存。


技术选型

整个项目采用SpringCloud Alibaba技术栈实现,主要的技术选型如下所示。

  • 持久层框架:MyBatis、MyBatis-Plus
  • 微服务框架:SpringCloud Alibaba
  • 消息中间件:RocketMQ
  • 服务治理与服务配置:Nacos
  • 负载均衡组件:Ribbon
  • 远程服务调用:Fegin
  • 服务限流与容错:Sentinel
  • 服务网关:SpringCloud-Gateway
  • 服务链路追踪:Sleuth+ZipKin
  • 分布式事务:Seata
  • 数据存储:MySQL+ElasticSearch


模块划分

为了方便开发和维护,同时为了模块的复用性,整体项目在搭建时,会将用户微服务、商品微服务和订单微服务放在同一个Maven父工程下,作为父工程的子模块,同时,将用户微服务、商品微服务和订单微服务都会使用的JavaBean单独作为一个Maven模块,以及各服务都会使用的工具类单独作为一个Maven模块。

图片.png

其中各模块的说明如下所示:

  • shop-springcloud-alibaba:Maven父工程。
  • shop-bean:各服务都会使用的JavaBean模块,包含实体类、Dto、Vo等JavaBean。
  • shop-utils:各服务都会使用的工具类模块。
  • shop-order:订单微服务。
  • shop-product:商品微服务。
  • shop-user:用户微服务。

好了,到此我们的准备工作就做完了,从下一篇开始,我们正式搭建项目开撸源码,今天就到这儿吧,我是冰河,我们下期见~~

相关文章
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
46 0
|
30天前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
139 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
131 0
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
81 0
|
3天前
|
Java API 对象存储
对象存储OSS产品常见问题之使用Spring Cloud Alibaba情况下文档添加水印如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
22 2
|
11天前
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
|
11天前
|
SpringCloudAlibaba Java API
SpringCloud Alibaba微服务工程搭建(保姆级)
SpringCloud Alibaba微服务工程搭建(保姆级)
|
11天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
61 1
|
1月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
185 0

热门文章

最新文章