【Zookeeper】JAVA通过ZK实现服务注册和服务发现

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

服务化现在已经是个很成熟的概念了,最近在做个项目,其实就用到了一个服务地址的暴露和订阅,简单跟大家探讨探讨

<dependency>
				<groupId>com.101tec</groupId>
				<artifactId>zkclient</artifactId>
				<version>0.7</version>
			</dependency>

服务端创建目录并注册数据

zk.create(path, data, aclList,
                        persistent == true ? CreateMode.PERSISTENT : CreateMode.EPHEMERAL);

aclList带有权限控制信息

客户端只需要对相应的目录进行监控即可,一旦发生变化,zk会通知道客户端,获取最新的数据

zk.subscribeChildChanges(path, new IZkChildListener() {

            @Override
            public void handleChildChange(String parentPath, List<String> currentChilds)
                    throws Exception {

订阅子目录的变化

zk.subscribeDataChanges(path, new IZkDataListener() {
            @Override
            public void handleDataDeleted(String dataPath) throws Exception {
            }

            @Override
            public void handleDataChange(String dataPath, Object data) throws Exception {

订阅目录下数据的变化

服务注册:

服务端将自身服务地址注册到A目录下

服务发现:

客户端监听A目录变化,拿到最新的服务地址信息

发布了223 篇原创文章 · 获赞 208 · 访问量 72万+

猜你喜欢

转载自blog.csdn.net/chiweitree/article/details/51140582