springcloud gateway 鉴权_mallswarm 微服务电商项目发布重大更新,打造Spring Cloud最佳实践!...

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

系统架构图

d566af7ee103d71b8dad2c2306d0e94b.png
系统架构图

项目组织结构

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-registrymall-config模块已被移除,在config文件夹中存放了Nacos中的配置,启动项目时需要导入到Nacos中去。

Oauth2

  • 之前项目中有个mall-security的模块,我把它称为安全模块。所有需要权限校验的模块都需要依赖它,有点工具包的感觉,在微服务中使用总感觉不伦不类。

  • 这次改为使用Oauth2,添加了认证中心mall-auth,实现统一认证和鉴权,更加符合微服务权限控制,具体可以参考《微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!》。

  • 由于项目中存在两套不同的用户体系,后台用户和前台用户,认证中心对多用户体系也有所支持,访问认证中心时使用不同的client_idclient_secret即可区分不同用户体系,后台用户使用admin-app:123456,前台用户使用portal-app:123456

  • 对原来的登录接口做了兼容处理,分别会从内部调用认证中心获取Token,依然可以使用。

Knife4j

之前每个微服务都有自己的API文档地址,需要单独访问。这次把所有微服务的API文档都聚合到了网关上,统一了访问入口,直接访问网关的API文档地址即可,具体可以参考《微服务聚合Swagger文档,这波操作是真的香!》。

Spring Cloud Hoxton.SR5

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

Window和Linux部署文档更新

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

  • mall-swarm在Windows环境下的部署:http://www.macrozheng.com/#/deploy/mall_swarm_deploy_windows
  • mall-swarm在Linux环境下的部署(基于Docker容器):http://www.macrozheng.com/#/deploy/mall_swarm_deploy_docker

其他

其他更新内容和mall项目基本相同,具体参考《Mall 电商实战项目发布重大更新,全面支持SpringBoot 2.3.0 !》。

运行效果一览

  • 查看注册中心服务信息;
11bbab77b494810d7aafaaef0e5309f8.png
  • 监控中心应用信息;
2b36837eb37eb091cba79c949817c1d6.png
adc91802d3de3e0afadff9b3909dd330.png
156f86ae98efe603b729f16964898189.png
  • API文档信息;
1d2f9636a3a61ed3a784bf558c266220.png
  • 日志收集系统信息;
0aaa6513a332ed0d691f0d563ae98604.png
  • 可视化容器管理;
829b4a817d5340a63ca077ee8c5b3afc.png
bd39ce81f32cd753d20e39b9b65ba97a.png

项目地址

如此给力的微服务电商实战项目,赶紧点个Star支持下吧!

https://github.com/macrozheng/mall-swarm

推荐阅读

  • 为什么阿里巴巴禁止使用Apache BeanUtils进行属性拷贝?
  • 10个解放双手的 IDEA 插件,少些冤枉代码!
  • Docker服务开放了这个端口,服务器分分钟变肉机!
  • Mall 电商实战项目发布重大更新,全面支持SpringBoot 2.3.0 !
  • 秒杀商品超卖事故:Redis分布式锁请慎用!
  • 被我用烂的DEBUG调试技巧,专治各种搜索不到的问题!
  • 我扒了半天源码,终于找到了Oauth2自定义处理结果的最佳方案!
  • 别再if-else走天下了,整个注解多优雅!
  • 一个不容错过的Spring Cloud实战项目!
  • 我的Github开源项目,从0到20000 Star!

52c5e9c558d1c4567edab22134bd0cc8.png

欢迎关注,点个在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值