基于Zookeeper实现简易版服务的注册与发现机制
-
启动2个服务端
将服务端IP和端口信息注册到Zookeeper上 -
某个服务端下线后,Zookeeper注册列表会自动剔除下线的服务端节点,客户端与下线的服务端断开连接
-
服务端重新上线,客户端能感知到,并且与重新上线的服务端重新建立连接
-
基于Zookeeper的简易版负载均衡策略
5.1 Zookeeper记录每个服务端的最后一次响应时间(客户端选择响应时间短的服务端进行通信)
5.2 定时判断超过5s钟都没有被请求的客户端,如果超过就把对应的服务端的响应时间设置成0(保证负载均衡的正常切换,不要总是请求一个服务端)
二、zk客户端 功能实现中使用Curator,Curator是一款连接zk服务的框架,提供了比较全面的功能,因此选择此客户端进行zk的相关 *** 作
三、功能实现—上线和下线 3.1 代码实现-公共模块 3.2 代码实现-提供者模块
相关依赖
将服务端的信息注册到zk上
补充:zk节点创建creatingParentContainersIfNeeded()接口非常有用,因为一般情况开发人员在创建一个子节点必须判断它的父节点是否存在,如果不存在直接创建会抛出NoNodeException,使用creatingParentContainersIfNeeded()之后Curator能够自动递归创建所有所需的父节点。
服务端业务代码实现
相关依赖
监听zk上指定路径的节点变化
监听具体实现
客户端建立连接
处理类
- 开启定时任务,定时将耗时比较长的服务端的响应时间设置为0
- 开启线程,选择客户端进行请求 *** 作
封装连接信息
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)