加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
作业讲解.txt 2.14 KB
一键复制 编辑 原始数据 按行查看 历史
fengye 提交于 2021-09-01 20:45 . 问题描述
编程题一:
在基于Netty的自定义RPC的案例基础上,进行改造。基于Zookeeper实现简易版服务的注册与发现机制
要求完成改造版本:
1. 启动2个服务端,可以将IP及端口信息自动注册到Zookeeper
答:服务端在启动的时候新建临时节点(ip 端口)到持久节点/netty-server下
2. 客户端启动时,从Zookeeper中获取所有服务提供端节点信息,客户端与每一个服务端都建立连接
答:这边就是监听机制,临时节点有变化能通知到客户端,然后做相应的事件处理。我这边就是ZkClientListener监听类的init方法完成客户端启动时nettyClient连接,
并且用该ZkClientListener类的 一个成员变量的map[key是rpc-provider的端口,可以理解为一个服务。value是与之相连的netty Client]保存了每个连接信息,方便后续处理服务端下线
3. 某个服务端下线后,Zookeeper注册列表会自动剔除下线的服务端节点,客户端与下线的服务端断开连接
答:当下线之后,我会获取最新的临时节点信息 与map存储的信息做对比。如果最新的节点没有map的key,就移除掉map的这个端口为key的连接
4. 服务端重新上线,客户端能感知到,并且与重新上线的服务端重新建立连接
答:同理3
编程题二:
在“编程题一”的基础上,实现基于Zookeeper的简易版负载均衡策略
要求完成改造版本:
Zookeeper记录每个服务端的最后一次响应时间,有效时间为5秒,5s内如果该服务端没有新的请求,响应时间清零或失效。(如下图所示)
本人遇到的问题描述:
这个由于我 编程一的题目没有调试通过,所以这个还没写。
目前遇到的问题就是:接口调用浏览器一直转圈圈[参考截图'问题2.png'] 不能到达服务端[idea控制台打印 请看"问题1,png"截图]。请求地址:http://localhost:8000/user/1
在家里的电脑和公司电脑都测试了,还是不行。感觉这和本地单机模式启动的zk环境有关,有点像网络的原因。。。请导师帮忙解答下。
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化