前阵子我把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...