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