乐趣区

关于java:Mall电商实战项目微服务版本全面升级支持最新版SpringCloud权限解决方案升级

前阵子我把 mall 我的项目全面降级了,反对了 SpringBoot 2.7.0,置信很多小伙伴曾经晓得了。最近抽空把它的微服务版本 mall-swarm 也降级了,已反对最新版 SpringCloud&Alibaba,明天来聊聊降级内容和降级过程中遇到的一些问题,心愿对大家有所帮忙!

SpringCloud 实战电商我的项目mall-swarm(8.8k+star)地址:https://github.com/macrozheng/mall-swarm

技术栈降级

mall-swarm作为 mall 我的项目的微服务版本,实现性能与 mall 我的项目基本一致,只是架构有所不同。所以说 mall 我的项目中被降级的技术,mall-swarm根本也降级了,这里挑一些重点的提下,其余降级信息能够参考 mall 我的项目全面降级了。

技术 版本 阐明
Spring Cloud Hoxton.SR5->2021.0.3 微服务框架
Spring Cloud Alibaba 2.2.0->2021.0.3 微服务框架
Spring Boot 2.3.0->2.7.0 容器 +MVC 框架
Spring Security Oauth2 2.2.2->2.2.5 认证和受权框架
MyBatis 3.4.6->3.5.9 ORM 框架
Knife4j 2.0.4->3.0.3 文档生产工具
Nacos 1.3.1->2.1.0 注册核心及配置核心
Spring Boot Admin 2.3.0->2.7.0 微服务监控

降级过程

这里整顿了降级过程中遇到的一些问题,大家能够参考下!

反对 SpringBoot 2.7.0

因为 mall-swarm 我的项目应用了 Spring Cloud Gateway+Oauth2 实现对立认证和鉴权的权限解决方案,所以说在 mall 我的项目中呈现的循环依赖问题,这里并没有呈现。降级 SpringBoot 2.7.0 还是挺顺利的,默认间接反对了!

反对 SpringCloud 2021

降级 SpringCloud 2021 当前,Spring Cloud 中有一个重要的组件被弃用了,那就是作为负载平衡组件的 Ribbon。在有服务间调用需要的服务中,比方网关服务中,咱们须要退出 LoadBalancer 依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

否则在服务间调用时,会返回 Service Unavailable 错误信息。

{
    "timestamp": "2022-06-28T02:36:31.680+00:00",
    "path": "/auth/oauth/token",
    "status": 503,
    "error": "Service Unavailable",
    "requestId": "c480cefa-1"
}

反对 Nacos 2.1.0

之前我的项目应用 Nacos 作为注册核心和配置核心,这次把版本从 1.3.1 降级到了最新版 2.1.0,应用下面根本没扭转,除了在 Windows 上启动 Nacos 时须要增加standalone 参数。

startup.cmd -m standalone

上面是应用 Nacos 作为配置核心的截图。

微服务权限解决方案降级

降级了微服务权限解决方案,适配最新版 Spring Cloud,实现思路:mall-auth认证服务负责对立认证,mall-gateway网关服务负责校验认证和鉴权,其余 API 服务(如 mall-admin、mall-portal)则负责解决本人的业务逻辑。权限相干的逻辑只存在于认证服务和网关服务中,其余服务只是单纯地提供服务而没有任何权限相干逻辑。具体能够参考反对 Nacos 2.1.0!这套 Spring Cloud Gateway+Oauth2 终极权限解决方案降级了!。

Knife4j 降级

降级了 Knife4j 的版本,从 2.x 降级到了3.x,因为 Knife4j 基本上就是换了皮肤的 Swagger,所以只有解决之前 Swagger 降级的问题即可,具体能够参考降级 SpringBoot 2.6.x 版本后,Swagger 没法用了!。

来看下新版 Knife4j 的页面,和之前的版本根本没啥区别。

微服务监控降级

mall-swarm应用 Spring Boot Admin 作为微服务监控,降级后用法与之前基本一致。

部署文档更新

mall-swarm我的项目的部署文档也同步更新了,具体能够参考以下链接。

  • mall-swarm 在 Windows 环境下的部署

https://www.macrozheng.com/ma…

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

https://www.macrozheng.com/ma…

运行成果演示

有的小伙伴可能还没理解过这个我的项目,这里展现下 mall-swarm 微服务电商我的项目的演示成果。

  • 应用 Nacos 作为注册配置核心;
  • 应用 Knife4j 作为 API 接口文档工具;
  • 微服务利用监控零碎;
  • 微服务日志收集零碎;
  • 微服务利用容器治理。

总结

明天分享了一下 mall-swarm 我的项目的降级内容和降级过程中遇到的一些问题,根本能平滑过渡。自从改用日期作为版本号后,总感觉 Spring Cloud 的版本号看着有点迷糊,而且目前最新稳定版是 2021,2022 版本预计还在路上。

我的项目源码地址

开源不易,感觉我的项目有帮忙的小伙伴点个 Star 反对下吧!

https://github.com/macrozheng…

退出移动版