注:Dubbo版本是2.5.7
图1 ZookeeperRegistry类继承图
RegistryProtocol的export方法如下。
图2 RegistryProtocol的export方法
图2中registry.register(registedProviderUrl);调用的是FailbackRegistry的register方法,如下图3所示。
图3 FailbackRegistry的register方法
图3中,调用了doRegister(url),这个方法的实现是在ZookeeperRegistry中,如下所示。
protected void doRegister(URL url) {
try {
zkClient.create(toUrlPath(url), url.getParameter(Constants.DYNAMIC_KEY, true));
} catch (Throwable e) {
throw new RpcException("Failed to register " + url + " to zookeeper " + getUrl() + ", cause: " + e.getMessage(), e);
}
}
之后就到zkClient的节点create,在此就不分析了。
(adsbygoogle = window.adsbygoogle || []).push({});