Javaconfig形式配置Dubbo多注册中心

时间:2023-07-14 15:28:14

多注册中心,一般用不到,但是某些情况下的确能解决不少问题,可以将某些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系统共用.