栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

基于Zookeeper实现简易版服务的注册与发现机制

基于Zookeeper实现简易版服务的注册与发现机制

一. 题目要求 (一)需求一

在基于Netty的自定义RPC的案例基础上,进行改造。基于Zookeeper实现简易版服务的注册与发现机制

要求完成改造版本:

1. 启动2个服务端,可以将IP及端口信息自动注册到Zookeeper

2. 客户端启动时,从Zookeeper中获取所有服务提供端节点信息,客户端与每一个服务端都建立连接

3. 某个服务端下线后,Zookeeper注册列表会自动剔除下线的服务端节点,客户端与下线的服务端断开连接

4. 服务端重新上线,客户端能感知到,并且与重新上线的服务端重新建立连接

(二)需求二

在“编程题一”的基础上,实现基于Zookeeper的简易版负载均衡策略

要求完成改造版本:

Zookeeper记录每个服务端的最后一次响应时间,有效时间为5秒,5s内如果该服务端没有新的请求,响应时间清零或失效。(如下图所示)

 

当客户端发起调用,每次都选择最后一次响应时间短的服务端进行服务调用,如果时间一致,随机选取一个服务端进行调用,从而实现负载均衡

二. 解题思路 (一)在虚拟机Linux上搭建zookeeper伪集群 (二)在本地windows创建两个Rpc服务端

服务端一: ip:127.0.0.1, RPC绑定端口号:8899, 内置tomcat端口号:8081,服务端名:provider

服务端一: ip:192.168.1.61, RPC绑定端口号:8898,内置tomcat端口号:8082,服务端名:Otherprovider

(三)服务端改造流程

服务端改造比较容易,只是将自身的IP及端口号注册到zookeeper中

    与zookeeper的连接会话放到SpringBoot启动类中,在服务端SpringBoot所有初始化工作完成后开始与zookeeper连接

    连接完成后,将连接会话及服务器IP、端口号做为参数调用新创建的ZkServer类的初始化方法

    调用初始化方法后,再调用ZkServer类的zkUp方法向zookeeper进行节点的创建及服务端IP、端口号内容注册

    读取已创建的节点,判断服务端是否在zookeeper注册成功,并返回判断信息。

    当服务端Spring容器销毁时(也就是服务端关闭下线),重写destroy方法,删除zookeeper上所创建的临时节点。(临时节点在会话结束后也会自动消失)

(四)客户端改造流程

1、启动流程

2、请求流程

三. 完整代码

完整代码(请点击)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735194.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号