资源管理中心

  • RegisterServer
  • IRegister
  • Register
  • CheckAlive


资源注册中心功能
1.接收注册任务
2.接收注销任务
3.提供给资源接收端合理的资源节点列表。

对于资源管理中心来说,同服务发现的资源注册中心,和资源注册的功能相同。

RegisterServer

资源管理中心的启动入口类

public class RegisterServer{private int rpcPort;private Register rt;private rmiServer rs;private Object lock;private rmiCilent rc;private CilentProxy cp;private volatile NetNode currentNode;public RegisterServer() {          rs = new rmiServer();  lock = new Object();rt = new Register();cp = new CilentProxy();rc = new rmiCilent();rc.setIce(new CheckProviderException());cp.setRmicilent(rc);}public void setRpcPort(int port) {this.rpcPort = port;rs.setPort(this.rpcPort);}public void shudown() {   rs.close();}    public void start() {rs.start();}public void checkRobustness() {Set<NetNode> nodeList = rt.getAllNode();Iterator<NetNode> list = nodeList.iterator();while(list.hasNext()) {currentNode = list.next();rc.setId(currentNode.getIp());rc.setPort(currentNode.getPort());Iserver server = cp.getProxy(Iserver.class);server.robustness();  }}  class CheckProviderException implements ICilentException{@Overridepublic void peerAbnormalDrop() {rt.logOutServer(currentNode);}       }}

IRegister

/*
*注册中心的功能接口
*1.注册资源
*2.注销资源
*3.提供节点列表
*/
public interface IRegister {List<NetNode> getServerList(String serverDemand);void registServer(NetNode serverNode, List<String> ResourceName);void logOutServer(NetNode serverNode);}

Register

资源管理中心的功能实现类

@rmiInterface(rmiter= {IRegister.class})
public class Register implements IRegister{private static final Map<String, List<NetNode>> serverMap = new ConcurrentHashMap<String, List<NetNode>>();private static final Map<NetNode,Object> serverNodeMap = new ConcurrentHashMap<NetNode, Object>();private static final Object object= new Object();public Register() {}public Set<NetNode> getAllNode(){return serverNodeMap.keySet();}@Overridepublic List<NetNode> getServerList(String serverDemand) {return  serverMap.get(serverDemand); }public void Rew(INetNode node) {System.out.println(node);}@Overridepublic void registServer(NetNode serverNode, List<String> resourceName) {if(resourceName == null) {return;}    serverNodeMap.put(serverNode, object);for(String one : resourceName) {          if(!serverMap.containsKey(one)) {List<NetNode> nodeList = new ArrayList<NetNode>();nodeList.add(serverNode);serverMap.put(one, nodeList);}else {List<NetNode> nodeList = serverMap.get(one);nodeList.add(serverNode);}      }       }@Overridepublic void logOutServer(NetNode serverNode) {Set<String> keys = serverMap.keySet();Iterator<String> keyIter = keys.iterator();serverNodeMap.remove(serverNode);while(keyIter.hasNext()) {String key = keyIter.next();List<NetNode> nodeList =serverMap.get(key);Iterator<NetNode> values = nodeList.iterator();while(values.hasNext()) {NetNode one = values.next();values.remove();if(nodeList.isEmpty()) {keyIter.remove();}}}}
}

CheckAlive

/** 用于检测资源提供端的健壮性*/
public class CheckAlive {private RegisterServer rs;private Timer timer;public CheckAlive() {        timer = new Timer();timer.setIevent(new check());}public void setRegister(RegisterServer rs) {this.rs = rs;}public void startCheak() {    timer.start();  }public void stopCheak() {timer.stop();}class check implements IEvent{      @Overridepublic void dealEvent() { rs.checkRobustness();           }}}

多文件传输是基于服务发现框架的,多以对于资源管理中心的功能是相同的,区别在于在服务发现框架中,提供者和注册中心采用的是长连接的模式,在多文件传输中我们采用的是短连接的方式。
所有对于资源管理中心来讲,既是一个短连接的服务端,也是短连接的客户端,因为资源管理中心需要链接发送端(资源提供端)检测是否还能够给记性提供资源的服务。

多文件自平衡云传输 (五)资源管理中心篇 —————— 开开开山怪相关推荐

  1. 在线web免登陆云传输工具推荐【青蛙快传】

    一个比较好用的文件或者文本云传输工具,在线web版的,重要的是不需要登录,不需要登录,不需要登录! 优点1:无需登录,急速快传 优点2:手机电脑互传文件 优点3:不用安装软件,仅一个网址 青蛙快传 h ...

  2. [Java]分布式自平衡多文件云传输

    [Java]分布式自平衡多文件云传输 概述 基本思想 节点 Receiver接收方 资源分配及节点选择策略类 接收服务器端口池 资源请求类 短连接资源请求接口 资源信息类 资源节点关系表(资源管理中心 ...

  3. 电脑与云服务器传输文件,电脑与云服务器传输文件

    电脑与云服务器传输文件 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.本章节以Windows 2012版本操作系统为例进行CIFS类 ...

  4. 手机 服务器文件,手机查看云服务器文件

    手机查看云服务器文件 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 密钥对鉴权 ...

  5. 云服务器怎么拷贝和删除文件,怎样给云服务器拷贝文件

    怎样给云服务器拷贝文件 内容精选 换一换 本章节主要介绍云硬盘.弹性文件服务.对象存储服务等存储服务,让您更好的了解这些存储服务. 云服务器备份:云服务器备份可以对普通服务器进行整机备份或部分磁盘备份 ...

  6. http服务器 如何传输文件,http服务器 如何传输文件

    http服务器 如何传输文件 内容精选 换一换 华为云主机迁移服务帮助中心,为用户提供产品简介.快速入门.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用主机迁移服务. ...

  7. ecs服务器网站文件放在哪里,云服务器ecs文件放哪里

    云服务器ecs文件放哪里 内容精选 换一换 要访问您的文件系统,如果是Linux云服务器,您需要在Linux云服务器上安装NFS客户端后使用挂载命令挂载文件系统:如果是Windows云服务器,您需要在 ...

  8. 弹性服务器怎么上传文件,上传哪个文件夹弹性云服务器

    上传哪个文件夹弹性云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本节 ...

  9. 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器

    怎么把本地文件传给云服务器 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...

  10. 文件上传打满服务器带宽,文件上传云服务器 带宽选择

    文件上传云服务器 带宽选择 内容精选 换一换 弹性云服务器支持通过内网访问OBS,OBS可供用户存储任意类型的数据.将图片.视频等数据存储至OBS后,在ECS上可以访问OBS,下载桶中的图片或视频等数 ...

最新文章

  1. 关于Numba的线程实现的说明
  2. Android学习笔记之AndroidManifest.xml文件解析
  3. Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
  4. [原创] SQLite数据库使用清单(上)
  5. pycharm 导入或复制项目后run按钮灰色问题(显示pycharm add configuration)
  6. Delphi中的TreeView
  7. Android攻城狮Gallery和ImageSwitcher制作图片浏览器
  8. 创建macOS 启动安装盘
  9. 推荐几个前端大佬,真的厉害!
  10. linux 命令 find -exec 操作的问题
  11. Java总结:正则表达式进行校验
  12. 数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片
  13. tidb 配置mysql数据源_安装tidb数据库
  14. sizeof 在C语言的作用,union 与sizeof的作用??
  15. ArcObjects操作PageLayoutControl中元素位置,以图框、ITextSymbol为例
  16. xpath批量下载简历模板
  17. Java正则表达式【详解】
  18. 换号码的烦恼引起的思考
  19. 访问github时出现隐私设置错误您的连接不是私密连接问题的解决方案
  20. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,自考计算机应用基础试题及参考答案...

热门文章

  1. 记各种纸尿裤用后感——花王大王MOONY尤妮佳好奇帮宝适等等等
  2. SAP GUI登陆系统报Validity of certificate from list with PSE type >SSL错误弹窗
  3. opencv实战4-图像滤波
  4. 大话C语言——优化结构控制(一)
  5. idea 编译器注释汉字变繁体字解决办法
  6. QT 输入框禁止window10触摸屏弹出键盘
  7. 评价最高影片JAVAlibrary_《鼠胆英雄》:影片烂不烂,观众说了算
  8. pmp项目管理师证书有用么?
  9. Mongodb副本集RECOVERING
  10. android 10.0禁用电源键(屏蔽关机短按长按事件)