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

本文介绍如何基于Zookeeper在Java环境下改造Netty的RPC服务,实现在Linux虚拟机上的Zookeeper集群,以及在Windows上的两个RPC服务端注册。详细阐述了服务端如何将自己的IP和端口注册到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

(三)服务端改造流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enterpc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值