1、zk的watcher机制(监听)
当我们客户端想要调用去rpc服务的时候,会拿RPC服务的名字和方法名字组成一个znode的节点路径,在服务配置中心上去查找一下,这个节点是否存在,如果存在,ip地址和端口号获取了,发起RPC方法的请求,如果找不到,就不用发起RPC请求了。
而watcher机制相当于通知,回调机制, 客户端通过zk的API可以添加一个watcher,观察器,监听事件类型,针对UsersService这个节点的变化,维护一个map表,键就是节点的名字,值就是节点的内容。
我们的客户端可以向zk的一个父节点添加一个watcher,如果这个UsersService父节点的子v 节点有任何的变化,比如说子节点有增加或者挂掉,会由zk主动地告诉客户端这个节点发生了什么变化。
2、zk的原生开发API(c/c++接口)
进入上面解压目录src/c下面,zookeeper已经提供了原生的C/C++和Java API开发接口,需要通过源码编译生成,过程如下: