从dubbo zookeeper注册地址提取出zookeeper地址的方法
用途
项目中使用了dubbo,注册中心使用的zookeeper,使用zookeeper实现了一个简单的分布式锁(依赖curator),因为配置文件存在dubbo.registry配置,为了直接使用这个地址来创建分布式锁,写了一个简单的方法来提取zookeeper地址。
效果
dubbo.registry有多种配置方式,支持所有情况,下面是常见的例子和提取结果:
zookeeper://localhost:2181 zookeeper://localhost:2181?client=zkclient zookeeper://localhost:2181?backup=localhost:2182,localhost:2183 zookeeper://localhost:2181?client=zkclient&backup=localhost:2182,localhost:2183 ------------结果------------ Optional[localhost:2181] Optional[localhost:2181] Optional[localhost:2181,localhost:2182,localhost:2182] Optional[localhost:2181,localhost:2183,localhost:2183]
代码
importjava.util.Optional; publicclassZookeeperURL{ publicstaticfinalStringPREFIX="zookeeper://"; publicstaticfinalStringBACKUP="backup="; publicstaticOptionalconvertDubboRegistryToZookeeperURL(StringdubboRegistry){ StringBuilderzookeeperURL=newStringBuilder(); if(dubboRegistry!=null&&dubboRegistry.startsWith(PREFIX)){ dubboRegistry=dubboRegistry.substring(PREFIX.length()); intindex=dubboRegistry.indexOf("?"); if(index>0){ zookeeperURL.append(dubboRegistry.substring(0,index)); dubboRegistry=dubboRegistry.substring(index+1); String[]dubboRegistries=dubboRegistry.split("&"); for(inti=0;i 总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接