《Apache Dubbo微服务开发从入门到精通》——服务治理与生态——六、 配置中心(4) https://developer.aliyun.com/article/1223801
3) 高级配置
Apollo中的一个核心概念是命名空间-namespace,和上面Zookeeper、Nacos的namespace概念不同,因此使用方式上也比较特殊些,建议充分了解Apollo自身的用法后再阅读以下文档内容。
但总的来说,对Apollo的适配而言:
• namespace特用于流量治理规则隔离,参见3.1
• group特用于外部化配置的隔离,参见3.2
a) 外部化配置
config-center的group决定了Apollo读取外部化配置dubbo.properties文件的位置:
• 如果group为空,则默认从dubbo namespace读取配置,用户须将外部化配置写在dubbo namespace下。
• 如果group不为空
。 group值为应用名,则从应用当前的namespace读取配置,用户须将外部化配置写在Apollo自动指定的应用默认namespace下。
。 group值为任意值,则从对应的namespace读取配置,用户须将外部化配置写在该namespace下。
如以下示例是用的默认group='dubbo'的全局外部化配置,即该配置可被所有应用读取到。
如果配置group='应用名'则是应用特有配置,只有该应用可以读取到。
注:
关于外部化文件配置托管,相当于是把dubbo.properties配置文件的内容存储在了Apollo中。每个应用都可以通过关联共享的dubbo namespace继承公共配置,进而可以单独覆盖个别配置项。
b) 流量治理规则
流量治理规则一定都是全局共享的,因此每个应用内的namespace配置都应该保持一致。
config-center的namespace决定了Apollo存取流量治理规则的位置:
• 如果namespace为空,则默认从dubbo namespace存取配置,须治理规则写在dubbo namespace下。
• 如果namespace不为空,则从对应的namespace值读取规则,须治理规则写在该namespace下。
如以下示例是通过namespace='governance'将流量治理规则放在了governance namespace下。
c) 更多Apollo特有配置
当前Dubbo适配了env、apollo.meta、apollo.cluster、apollo.id等特有配置项,可通过config-center的扩展参数进行配置。
如
或者





