Apollo 配置中心发布 2.0 版本,支持 Java 17!原创
『 此次发布是 Apollo 自 1.0.0 以来的又一次大版本更新,凝结了 39 位 Contributor 的贡献,包含了诸如 Java 17 支持、唯一键索引增强、Spring Boot 版本升级等重大更新。』
1. Highlights
Java 17 支持
Apollo 客户端和服务端均已支持 Java 8、11 和 17 版本。
公共 Namespace 列表页
Apollo 主页新增了公共 Namespace 列表视图,用户可以在此页面上查看和搜索公共 Namespace。
灰度发布支持标签
灰度规则支持通过标签来标识灰度的实例列表,适用于 IP 不固定的场景如 Kubernetes
配置导入导出功能增强
批量配置导入导出功能进行了重新设计并增强。
每个 Namespace 下现也已支持单独导入和导出。
唯一键索引
由于软删除的设计,Apollo 之前版本的数据库除主键外没有唯一键约束,在一些并发的情况下可能会遇到重复数据的问题。基于 2.0.0 版本新增的 DeletedAt 列,我们为大多数表都增加了唯一索引。
Spring Boot 和 Spring Cloud 版本升级
Apollo 服务端的 Spring Boot 和 Spring Cloud 分别升级到了 2.6.6 和 2021.0.1 版本。
不兼容更新
apollo-client 从 2.0.0 版本开始不再支持 Java 1.7 版本,最低的 Java 运行时环境是 1.8。
2. What's Changed
功能增强
-
switch apollo.config-service log from warning to info level by @lonre
-
Make Access Key Timestamp check configurable by @nisiyong
-
refactor: let open api more easier to use and development by @Anilople
-
feat(scripts): use bash to call openapi by @Anilople
-
support search by item by @lepdou
-
feature: implement password policies to avoid weak passwords by @WillardHu
-
public namespace basic function by @youabcd
-
Extend the gray release capability to support dimensions other than IP by @zcy1010
-
bump to 2.0.0 and drop java 1.7 support by @nobodyiam
-
feat: add a shortcut to scroll to the top in the dashboard by @NICEXAI
-
change scrollbar css by @zeemood
-
support java 17 by @nobodyiam
-
optimize navbar style by @lepdou
-
add language.png icon by @lepdou
-
support export import config by env by @lepdou
-
support only show difference keys when compare namespace by @lepdou
-
add zookeeper service discovery support(#3557) by @CalebZYC
-
bump guava version to 31.0.1 by @Shoothzj
-
Bump client springboot version by @Shoothzj
-
The release history of namespaces that are not properties will also show comments and release times by @klboke
-
Allow disable apollo client cache by @Shoothzj
-
feature: isCommonlyUsed password check not hardcoded #4018 by @WillardHu
-
canonical zh-cn text by @lepdou
-
optimize create namespace page by @lepdou
-
Add Ordered interface to ProviderManager SPI by @darcydai
-
Bump xstream from 1.4.18 to 1.4.19 by @dependabot
-
Using commons-lang3 to replace commons-lang by @ruanwenjun
-
optimize import/export config by @lepdou
-
Configure publish and rollback modal boxes to add scrollbars by @klboke
-
add custom define discovery by @gy09535
-
Refactor the soft delete design by @nisiyong
-
upgrade spring boot to 2.6.6 and spring cloud to 2021.0.1 by @nobodyiam
-
upgrade mysql-connector-java to 8.0.28 by @Anilople
-
Upgrade flyway to 8.0.5 by @Shoothzj
-
Broadcast ConfigChangeEvent using Spring ApplicationEvent @nobodyiam
问题修复
-
Fix issue that the $ symbol is not used when reading shell variables by @ReganHe93
-
Fix issue: ingress syntax by @lijiansgit
-
fix helm scripts BUG by @w-a-n-g-s-h-u-n
-
Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load by @nobodyiam
-
fix gray publish refresh item status(#4039) by @CalebZYC
-
Fix the issue that property placeholder doesn't work for dubbo reference beans by @lonre
-
Fix the NPE occurred when using EnableApolloConfig with Spring 3.1.1 by @nobodyiam
-
fix the json number display issue when it's longer than 16 by @CalebZYC
-
fix update user password failure bug by @lepdou
-
Fix bug: associated namespace display incorrect in text view by @darcydai
-
fix import config bug by @lepdou
-
fix the potential data inconsistency issue by @nobodyiam
-
use item.isDeleted to check whether the item is deleted by @nobodyiam
-
Fix the apollo portal start failed issue by @nobodyiam
其它更新
-
remove ctrip profile by @JaredTan95
-
Remove spring dependencies from internal code by @klboke
-
remove ctrip profile dependency. by @Accelerator96
-
fix gpg signing issues when deploying to maven repository with github action by @nobodyiam
-
Fixed some code smells in apollo-portal module by @WillardHu
-
clean ctrip profile by @JaredTan95
-
Fixed some code smells in apollo-portal module #2 by @WillardHu
-
fix NullPointerException hazard in StringUtils.join(..) method by @WillardHu
-
Replace String.format() with newly created class OpenApiPathBuilder by @WillardHu
-
Make the constructor of AbstractApolloHttpException implementation class to support string template by @WillardHu
-
Removed useless hardcoded Strings in EnvUtils. by @DiegoKrupitza
-
chore: Simplified the Env class in apollo-portal that links to Env enum in apollo-core by @DiegoKrupitza
-
Chore: Future-proofed ConfigFileFormat by @DiegoKrupitza
-
ConfigFileFormat#Properties are now fully compatible with themselves by @DiegoKrupitza
-
Fix flaky test testGetPropertyNames. by @yyfMichaelYan
-
Fix flaky test testAssembleQueryConfigUrl. by @yyfMichaelYan
-
Update RelativeDateFormat.java by @xuxiawei
-
chore: change 'ctripcorp' to 'apolloconfig' in .yaml files by @void1104
-
Flaky test fields iteration order by @yyfMichaelYan
-
test(apollo-core): PropertiesUtilTest by @youyulan
-
optimization omits unnecessary time conversion by @xuxiawei
-
Split helm chart into another repo by @JaredTan95
-
refactor: SpringValueProcessor extract duplicate code by @mghio
-
build: ctripcorp -> apolloconfig in .github/workflows/cla.yml by @Fool-coder
-
Add unit tests for Utils by @joshknopp
-
Change Copy Right year to 2022 by @Shoothzj
-
Adding JUnit. Fixes #3874 by @ayush0407
-
Test coverage by @ayush0407
-
Test coverage by @ayush0407
-
Fix flaky test by @plzdoo
-
Update ReleaseMessageServiceWithCacheTest.java by @plzdoo
-
Translation of Apollo Official Chinese Document(s) by @misselvexu
-
fix a title indent error by @Alceatraz
-
Misc changes by @nobodyiam
-
feat: update secret access key tips by @weiyichao
-
Misc changes by @lepdou
更多内容可以查看 2.0.0 的 Release Note。
感谢以下贡献者对此版本的贡献 (排名不分先后)
@ReganHe93 @lonre @JaredTan95 @nisiyong @klboke @Accelerator96 @nobodyiam @lijiansgit @WillardHu @Anilople @lepdou @DiegoKrupitza @youabcd @zcy1010 @NICEXAI @zeemood @w-a-n-g-s-h-u-n @yyfMichaelYan @xuxiawei @void1104 @youyulan @CalebZYC @mghio @Fool-coder @Shoothzj @joshknopp @darcydai @dependabot @ruanwenjun @gy09535 @ayush0407 @czd890 @pengweiqhca @sy-records @dazuimao1990 @plzdoo @misselvexu @Alceatraz @weiyichao