Apollo 設定中心釋出 2.0 版本,支援 Java 17!

2022-05-16 09:00:15

『 此次釋出是 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 的 。

感謝以下貢獻者對此版本的貢獻(排名不分先後)

@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、技術討論等,一起促進開源生態的發展。

展開閱讀全文