> 
> 
> 好吧,该问题已解决。有点小坑(⊙o⊙)…
> 处理:将前缀 registrys 修改为 registries 即可。
> 分析:原本基于apache 
> dubbo-spring-boot-starter模块的源码去找到的DubboConfigurationProperties中的registrys 
> 字段,所以假想着多注册中心配置(上面失效的配置)是可行的,结果并调试了好多圈,死活不生效。
> 实在没办法就去研究dubbo本身的多注册中心配置,然后尝试着配置 
> dubbo.registries属性结果竟然成功了。dubbo.registries是通过DubboConfigBindingBeanPostProcessor来对注册中心进行配置初始化的。

确实是个坑,正常理解应通过`DubboConfigurationProperties`属性绑定对象获取属性值。但具体实现确实是先注册一系列的AbstranctConfig
 Bean定义,实例化这些Bean时由DubboConfigBindingBeanPostProcessor后置处理器从属性文件拿到对应的值赋值, 
压根没从属性绑定对象取值,属性绑定对象定义的属性: registrys, 
而DubboConfigBindingBeanPostProcessor后置处理器是根据dubbo.registries前缀从属性源文件取值. 
两边不一致造成一种假象,容易出错。
> 属性绑定对象支持这种写法:
```
dubbo:
  registrys:
    zk1: zookeeper://localhost:2181
    zk2: zookeeper://localhost:2182
    zk3: zookeeper://localhost:2183
```
这种写法是通过构造器创建RegistryConfig对象, 把registrys -> registies还是死活报错
> 最后写成这种写法就OK:
```
dubbo:
  registries:
    zk1:
      address: zookeeper://localhost:2181
    zk2:
      address: zookeeper://localhost:2182
    zk3:
      address: zookeeper://localhost:2183
```
因为DubboConfigBindingBeanPostProcessor后置处理器是通过属性设置的, 所以必须存在属性名

[ Full content available at: 
https://github.com/apache/dubbo-spring-boot-project/issues/535 ]
This message was relayed via gitbox.apache.org for 
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to