Apollo 配置中心发布 2.0 版本,支持 Java 17!

发布于 2022年05月16日
收藏 9

『 此次发布是 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


Apollo 社区欢迎大家以任何形式为社区做出贡献,包括但不限于文档改进、提交 issue/bug、贡献代码、Review PR、技术讨论等,一起促进开源生态的发展。

转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Apollo 配置中心发布 2.0 版本,支持 Java 17!