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://localhost:8080"/>
或者
dubbo
config-center
address: apollo://localhost:8080
或者
dubbo.config-center.address=apollo://localhost:8080
或者
ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("apollo://localhost:8080");
3 高级配置
Apollo 中的一个核心概念是命名空间 - 命名空间,它与上面 Zookeeper 和 Nacos 的命名空间概念不同,因此使用方法也比较特殊。建议在充分了解 Apollo 本身的使用方法后再阅读以下文档。
但总的来说,对于 Apollo 的适配
- 命名空间专门用于隔离流量治理规则,参见 3.1
- 分组专门用于隔离外部化配置,参见 3.2
3.1 外部化配置
<dubbo:config-center group="demo-provider" address="apollo://localhost: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://localhost:8080"/>
配置中心的 namespace
决定了 Apollo 访问 流量治理规则
的位置
- 如果 namespace 为空,则默认从
dubbo
命名空间访问配置,治理规则必须写入dubbo
命名空间下。 - 如果 namespace 不为空,则从对应的 namespace 值读取规则,治理规则必须写入该命名空间下。
例如,以下示例通过 namespace='governance'
将流量治理规则放在 governance
命名空间下。
3.3 更多 Apollo 特定的配置
目前 Dubbo 适配了 env、apollo.meta、apollo.cluster、apollo.id 等独特的配置项,可以通过 config-center 的扩展参数进行配置。
例如
dubbo.config-center.address=apollo://localhost:8080
或者
dubbo.config-center.prameters.apollo.meta=xxx
dubbo.config-center.prameters.env=xxx
上次修改时间:2023 年 1 月 2 日:增强英文文档 (#1798) (95a9f4f6c1c)