Apollo
Apollo 配置中心的基本用法和工作原理。
1 前置條件
- 了解 Dubbo 基本開發步驟
- 安裝並啟動 Apollo
2 使用說明
在此處查看 完整範例程式碼
2.1 加入 Maven 依賴
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>3.0.9</version>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-openapi</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>2.0.0</version>
</dependency>
2.2 啟用 Apollo 配置中心
<dubbo:config-center address="apollo://#:8080"/>
或
dubbo
config-center
address: apollo://#:8080
或
dubbo.config-center.address=apollo://#:8080
或
ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("apollo://#:8080");
3 進階設定
Apollo 中的一個核心概念是命名空間 - namespace,這與上面 Zookeeper 和 Nacos 的命名空間概念不同,所以使用方法也比較特別。建議在充分理解 Apollo 本身的使用方法之後再閱讀以下文件。
但總體來說,對於 Apollo 的適配
- namespace 專門用於隔離流量治理規則,詳見 3.1
- group 專門用於隔離外部化配置,詳見 3.2
3.1 外部化配置
<dubbo:config-center group="demo-provider" address="apollo://#:8080"/>
配置中心的 group
決定 Apollo 從哪裡讀取外部化配置檔案 dubbo.properties
- 如果 group 為空,則預設從
dubbo
命名空間讀取配置,使用者必須將外部化配置寫在dubbo
命名空間下。 - 如果 group 不為空 2.1 如果 group 值為應用程式名稱,則從應用程式的當前命名空間讀取配置,使用者必須將外部化配置寫在 Apollo 自動指定的應用程式預設命名空間下。 2.2 如果 group 值為任意值,則從對應的命名空間讀取配置,使用者必須將外部化配置寫在該命名空間下。
例如,以下範例使用預設的全局外部化配置 group=‘dubbo’,即所有應用程式皆可讀取該配置。
若配置 group=‘應用程式名稱’,則為應用程式專屬配置,只有該應用程式可以讀取。
關於外部化檔案配置託管,相當於將
dubbo.properties
配置檔案的內容儲存在 Apollo 中。每個應用程式都可以透過關聯共享的dubbo
命名空間來繼承公共配置,然後再個別覆蓋單獨的配置項。
3.2 流量治理規則
**流量治理規則必須全局共享,因此每個應用程式中的命名空間配置應保持一致。**
<dubbo:config-center namespace="governance" address="apollo://#:8080"/>
配置中心的 namespace
決定 Apollo 存取 流量治理規則
的位置。
- 如果命名空間為空,則預設從
dubbo
命名空間存取配置,治理規則必須寫在dubbo
命名空間下。 - 如果命名空間不為空,則從對應的命名空間值讀取規則,治理規則必須寫在此命名空間下。
例如,以下範例透過 namespace='governance'
將流量治理規則放置在 governance
命名空間下。
3.3 Apollo 特定配置
目前 Dubbo 適配了 env、apollo.meta、apollo.cluster、apollo.id 等獨特的配置項,可以透過 config-center 的擴展參數進行配置。
例如:
dubbo.config-center.address=apollo://#:8080
或
dubbo.config-center.prameters.apollo.meta=xxx
dubbo.config-center.prameters.env=xxx
最後修改日期:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)