mall-swarm微服务电商项目发布大更新,打造Spring Cloud最佳实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!

之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!

系统架构图

系统架构图

项目组织结构

mall
├── mall-common -- 工具类及通用代码模块
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码模块
├── mall-auth -- 基于Spring Security Oauth2的统一的认证中心
├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务
├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心
├── mall-admin -- 后台管理系统服务
├── mall-search -- 基于Elasticsearch的商品搜索系统服务
├── mall-portal -- 移动端商城系统服务
├── mall-demo -- 微服务远程调用测试服务
└── config -- 配置中心存储的配置

更新内容一览

  • 集成Spring Cloud Alibaba,注册中心改用Nacos;
  • 权限功能改用Oauth2,实现统一认证和鉴权;
  • 集成Knife4j,实现网关聚合API文档;
  • 升级Spring Cloud Hoxton.SR5;
  • 升级Spring Boot 2.3.0.RELEASE;
  • 升级Elasticsearch 7.6.2;
  • ELK日志收集功能完善,采用分场景收集日志的方式;
  • Window和Linux部署文档更新。

更新内容介绍

Spring Cloud Alibaba

集成了Spring Cloud Alibaba,注册中心和配置中心都改用了Nacos。之前使用的注册中心是Eureka,已经进入维护期不再更新了,之前使用的配置中心是Spring Cloud Config,需要使用消息队列才能实现配置刷新。Nacos既可以当注册中心又可以当配置中心,采用Netty保持TCP长连接实现配置刷新,拥有方便的管理界面,所以就改为使用Nacos了。原来的mall-registry和mall-config模块已被移除,在config文件夹中存放了Nacos中的配置,启动项目时需要导入到Nacos中去。

Oauth2

  • 之前项目中有个mall-security的模块,我把它称为安全模块。所有需要权限校验的模块都需要依赖它,有点工具包的感觉,在微服务中使用总感觉不伦不类。
  • 这次改为使用Oauth2,添加了认证中心mall-auth,实现统一认证和鉴权,更加符合微服务权限控制,
  • 于项目中存在两套不同的用户体系,后台用户和前台用户,认证中心对多用户体系也有所支持,访问认证中心时使用不同的client_id和client_secret即可区分不同用户体系,后台用户使用admin-app:123456,前台用户使用portal-app:123456。
  • 对原来的登录接口做了兼容处理,分别会从内部调用认证中心获取Token,依然可以使用。

Knife4j

之前每个微服务都有自己的API文档地址,需要单独访问。这次把所有微服务的API文档都聚合到了网关上,统一了访问入口,直接访问网关的API文档地址即可

Spring Cloud Hoxton.SR5

Spring Cloud 和SpringBoot有着版本对应关系,升级到SpringBoot 2.3.0正好对应了该版本。

Window和Linux部署文档更新

由于部分组件的升级及项目结构的改变,部署文档也更新了,部署有问题的参考最新文档!

  • mall-swarm在Windows环境下的部署:
  • mall-swarm在Linux环境下的部署(基于Docker容器)

其他

其他更新内容和mall项目基本相同

运行效果一览

  • 查看注册中心服务信息;

  • 监控中心应用信息;

  • API文档信息;

  • 日志收集系统信息;

  • 可视化容器管理;

项目地址

如此给力的微服务电商实战项目赶紧来学习一波吧,可以点击此处来获取就可以了!

相关文章
|
3月前
|
Java 微服务 Spring
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
文章介绍了如何利用Spring Cloud Alibaba快速构建大型电商系统的分布式微服务,包括服务限流降级等主要功能的实现,并通过注解和配置简化了Spring Cloud应用的接入和搭建过程。
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
|
6月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
412 0
|
6月前
|
Dubbo 应用服务中间件 Docker
阿里P8架构师谈微服务架构:Dubbo+Docker+SpringBoot+Cloud
什么是微服务架构呢?简单说就是将一个完整的应用(单体应用) 按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发、部署、扩展。服务于服务之间通过注入RESTful api或其他方式调用。
|
6月前
|
Java API Nacos
mall-swarm微服务电商项目发布大更新,打造Spring Cloud最佳实践
之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!
|
消息中间件 Java API
微服务技术系列教程(43)- SpringCloud -Zipkin环境集成
微服务技术系列教程(43)- SpringCloud -Zipkin环境集成
93 0
|
Java jenkins 持续交付
基于Spring Cloud与Docker如何搭建一个电商平台项目
近几年,大家都在谈论微服务,那么,什么是微服务呢,微服务的概念是怎么产生的呢?为什么要使用微服务架构,微服务架构能给我们带来什么好处,微服务架构与Spring Cloud又是一种什么关系。 要说明什么是微服务,很有可能一时不能说得很清楚。这里 有一点容易混淆的就是微服务架构和微服务,这应该是两个不同的概念。
|
SpringCloudAlibaba Java 微服务
SpringCloud Alibaba微服务实战三十一 - 业务日志组件
SpringCloud Alibaba微服务实战三十一 - 业务日志组件
451 0
|
SpringCloudAlibaba 网络协议 JavaScript
SpringCloud Alibaba微服务实战十五 - SpringCloud 容器化部署
SpringCloud Alibaba微服务实战十五 - SpringCloud 容器化部署
324 0
|
SpringCloudAlibaba 关系型数据库 MySQL
SpringCloud Alibaba微服务实战 - 基础环境准备
SpringCloud Alibaba微服务实战 - 基础环境准备
262 0
|
开发框架 前端开发 Java
SpringCloud微服务实战——搭建企业级开发框架(十九):Gateway使用knife4j聚合微服务文档
本章介绍Spring Cloud Gateway网关如何集成knife4j,通过网关聚合所有的Swagger微服务文档 1、gitegg-gateway中引入knife4j依赖,如果没有后端代码编写的话,仅仅引入一个swagger的前端ui模块就可以了
1142 57
SpringCloud微服务实战——搭建企业级开发框架(十九):Gateway使用knife4j聚合微服务文档
下一篇
无影云桌面