Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Boot 2.7.1、Spring Cloud 2021.0.3、Spring Cloud Alibaba 2021.0.1.0、 Spring Authorization Server 0.3.1、Nacos 2.1.0 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能
平台定位
- 构建成熟的、完善的、全面的,基于 OAuth2 的、前后端分离的微服务架构解决方案。
- 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
- 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
- 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。
[1]、发布背景
2021年11月8日 Spring 官方已经强烈建议使用 Spring Authorization Server 替换已经过时的 Spring Security OAuth2.0。
在 Spring Security OAuth2 彻底停止维护、Spring Boot 2.7.0 正式发布之时,又恰逢 Eurynome Cloud 开源一周年之际,推出基于 Spring Authorization Server 0.3.0、Spring Boot 2.7.0、Spring Cloud 2021.0.3、Spring Cloud Alibaba 2021.0.1.0 和 Nacos 2.1.0 的全新正式版本,细节满满,欢迎品鉴。
[2]、重要说明
由于 Spring Authorization Server 0.3.0 版本,使用 Java 11 进行代码编译。导致使用该版本在 Java 8 下代码已无法编译成功,所以必须要升级 JDK 版本。同时,考虑到 2022 年 11 月,Spring Boot 3 将会发布,最低版本要求 Java 17。因此,直接将 Java 版本升级至 17。Eurynome Cloud 2.7.0.20 ~ 2.7.0.50 均是采用 Java 17 编译运行,同时不兼容 Java 8。
不管是 Spring Authorization Server 还是本项目 Eurynome Cloud,各路网友均不主张在现阶段直接将 Java 升级 17,而是希望继续兼容 Java 8,在 Spring Boot 3 发布以后再统一升级为默认使用 Java 17
因此 Spring Authorization Server 0.3.1 版本,代码降级兼容了 Java 8。Eurynome Cloud 也同步进行了代码的降级兼容处理,以兼容 Java 8。经过验证,目前 Erurynom Cloud 在 Java 8、11、17 环境下均可以正常稳定运行
Spring Authorization Server 发布两个版本,Eurynome Cloud 使用的 Java 版本就跟着变,升到 Java 17 又跟着降回 Java 8,折腾一圈浪费功夫。看似折腾实则不然,经此一役,Eurynome Cloud 已经完全支持 Java 8 Java 11 和 Java 17,未来升级使用 Spring Boot 3 也不是问题。验证了那句话“用心认真走过的每条路都不会白走”
[3]、本次更新内容
- 重要更新
- Spring Boot 版本升级至 2.7.1
- Spring Boot Admin 版本升级至 2.7.1
- Skywalking Java Agent 版本升级至 8.11.0
- 其它更新
- [新增] 增加通过范围代码查询应用范围接口
- [新增] 增加自定义打包的 JDK 镜像 herodotus/oracle-jdk:8u331,彻底根除服务在 Docker 环境下由于使用 OpenJDK 版本不同的差异导致无法读取字体出错,以及打包成镜像过程中下载字体慢的问题。该镜像已经上传至 Docker Hub,可以直接下载使用。
- [新增] 对几款常用的 OpenJDK 基础镜像进行了验证,在 Dockerfile 中,新增了适合使用的两个版本 JDK 基础镜像配置,放开注释即可选择使用。
- [优化] 优化涉及字体读取的行为验证码和图形验证码代码,增强在不同系统和不同 Java 版本下的兼容性。
- [修复] 调整 Skywalking Docker Compose 配置参数,解决 8.7.0-es7 以后版本 Skywalking Docker 无法正常启动问题。
- [删除] 删除项目核心 dependencies 中,与新版本 spring-boot-dependencies 中重复的依赖及版本 pom 配置,尽量使用 spring-boot-dependencies 对项目大部分依赖版本进行管控,减少依赖的重复配置以及版本不兼容问题。
- 依赖更新
- WxJava 版本升级至 4.3.6.B
- mapstruct-processor 版本升级至 1.5.2.Final
- mybatis-plus-boot-starter 版本升级至 3.5.2
- tencentcloud-sdk-java 版本升级至 3.1.537
- alipay-sdk-java 版本升级至 4.31.28.ALL
- jpush-client 版本升级至 3.6.3
[4]、Eurynome Cloud 2.7.X 主要变化
[5]、额外说明
- 本项目以后将主要维护 Spring Authorization Server 版本,原有基于 Spring Security OAuth2 的版本已经移至 spring-security-oauth2 分支,可以从该分支或发行版页面获取历史版本继续使用。后期会根据 ISSUE 以及使用用户反馈情况,再行决定是否继续维护 Spring Security OAuth2 版本。
- 最新版本代码,暂时继续沿用原有基于 Vue2、Vuetify2、Typescript开发的前端系统。基于 Vue3、Vite2、Quasar、Pinia、Typescript 的新版前端正在加进开发中,预计本月底发布。
- 原有基于 Vue2、Vuetify2、Typescript 开发的前端,由于使用了过渡性 Typescript IOC 组件,以及依赖组件版本限制等问题,初次接触该项目在编译过程中会出现一些问题,请移步至本项目在线文档,详见“常见问题”章节。