# myRpc **Repository Path**: cs_123/myRpc ## Basic Information - **Project Name**: myRpc - **Description**: myRpc - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-03-19 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 作业二 zookeeper节点服务数据组成:ip:port,askTime 服务器通过设置方法的睡眠时间测试com.cs.service.UserServiceImpl.sayHello 负载均衡方法com.cs.client.RpcConsumer.doBalance List keys = new ArrayList<>();//最短响应时间的服务节点地址集合 int shortest=5000;//最短响应时间,默认最大值5秒 for(String key : serverMap.keySet()){ String[] strings = serverMap.get(key).split(","); int ackTime = Integer.valueOf(strings[1]); if(shortest>ackTime){//相对响应时间短的服务被选择 shortest = ackTime;//记录最短的响应时间 keys.clear();//清空响应时间长的服务地址 keys.add(key);//记录响应时间短的服务地址 }else if(shortest==ackTime){ keys.add(key);//添加响应时间相同的服务地址 } } if(keys.size()==0){ throw new RuntimeException("未获取到任何合格的服务器信息"); } int index = (int) (Math.random() * keys.size());//随机获取一个范围内的index return keys.get(index); 超时处理com.cs.client.UserClientHandler.userEventTriggered 读取时间记录com.cs.client.UserClientHandler.call