【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目录变化,拿到最新的服务地址信息

【Zookeeper】JAVA通过ZK实现服务注册和服务发现_第1张图片

你可能感兴趣的:(java,zookeeper,服务化)