多注册中心,一般用不到,但是某些情况下的确能解决不少问题,可以将某些dubbo服务注册到2套dubbo系统中,实现服务在2套系统间的共用.
网上的配置说明很多,但包括dubbo官方说明文档都是以xml文件配置方式举例.
如想采用javaconfig的配置方式,则只需要对provider中的配置做适当修改,如下所示:
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress(env.getProperty("dubbo.registry.address"));
return registryConfig;
}
@Bean
public RegistryConfig registryConfig2() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress(env.getProperty("dubbo.registry.address"));
registryConfig.setDefault(false); //其它的都设置为非默认注册中心
return registryConfig;
}
只需要将第二套注册中心设置为非默认地址.然后在注册服务的时候指定注册中心地址即可:
@Service(version = "1.0.0",registry = {"registryConfig","registryConfig2"})
public class ServiceImpl implements Service{ ..... }
如果不在@Bean中指定beanName,则默认使用方法名称,否则使用指定的beanName进行注册.
通过以上配置后此服务便注册到2套注册中心中,此服务同时也被2套dubbo系统共用.