在使用dubbo时,注册中心是一个必要的架构组成成员。当我们的注册中心没有采取集群时,如何在dubbo-admin中配置,我们可以根据dubbo官方文档,很快找到我们的答案。
但是当注册中心集群之后怎么来配置呢?
我也在网上找了一大圈,没找到个答案。俗话说得好,自己动手丰衣足食,下载了一份dubbo源码,很快就找到了答案。看一下下面的截图中的源码,一下子就明了了
其他的东西先不做研究,我们就看一下红线圈住的这个方法:
protected void checkRegistry() { // 兼容旧版本 if (registries == null || registries.size() == 0) { String address = ConfigUtils.getProperty("dubbo.registry.address"); if (address != null && address.length() > 0) { registries = new ArrayList<RegistryConfig>(); String[] as = address.split("\\s*[|]+\\s*"); for (String a : as) { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(a); registries.add(registryConfig); } } } if ((registries == null || registries.size() == 0)) { throw new IllegalStateException((getClass().getSimpleName().startsWith("Reference") ? "No such any registry to refer service in consumer " : "No such any registry to export service in provider ") + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + ", Please add <dubbo:registry address=\"...\" /> to your spring config. If you want unregister, please set <dubbo:service registry=\"N/A\" />"); } for (RegistryConfig registryConfig : registries) { appendProperties(registryConfig); } }
从这个方法中看到这一句:
String[] as = address.split("\\s*[|]+\\s*");
这下子就明白了吧,原来这个配置允许我们同时配置多个注册中心地址的,不得不佩服阿里那群大牛!!!
好了,到这里差不多了,下面是我的配置,记录下来给大家参考一下:
1、注册中心没集群时的配置:在WEB-INF/下修改dubbo.properties
dubbo.registry.address=zookeeper://192.168.70.129:2181
2、注册中心集群之后的配置:在WEB-INF/下修改dubbo.properties
dubbo.registry.address=zookeeper://191.168.70.129:2181 | zookeeper://192.168.70.130:2181 | zookeeper://192.168.70.131:2181
配置往后,我们进入管理界面看到下面圈住的内容,那就说明成功了,O(∩_∩)O哈哈~