《资源发现》框架

《资源发现》框架

1. 特别声明

本《资源发现》框架是作为JavaSE练习而创造的,并不是为了“造方轮子”而制作的!!!

在过去的编程里,我用过许多的相同的”制式代码“,基于这种认知,为了方便之后的编程,产生了制造框架的意图,于是有了本框架的诞生

2. 《资源发现》框架概述

  1. 《资源发现》:基于多服务器、多APP资源处理的资源共享框架

  2. 在如今的网络社会中,资源的传递需求极大,由此会产生不同的资源传输功能的APP和技术,而庞大的数据传输需要多个服务器进行,但是多个服务器需要解决服务器地址分发、负载均衡等问题,在这种情况下,为了解决上述多服务器系统的要求,并尽可能降低系统实现代价,《服务发现》的思路诞生。其拥有很好的容错性能,有服务器热插拔的优点,可以支持跨应用服务!

  3. 《资源发现》是基于《服务发现》的思路,实现对其的一种模拟,其独立于某个APP而产生的框架,其强大之处在于适用于不同的APP,不被约束。他处理的是不同APP中以资源编号产生的资源,而不关心具体的资源是什么。

3. 思路探索

使用RMI模式,且,实现如下功能:
1、资源拥有者功能:
1.1、注册资源:提供资源和地址,在资源注册中心进行注册;(客户端)
1.2、注销资源:提供资源和地址,在资源注册中心进行注销。(客户端)
2、资源请求者功能:
1、请求资源地址:提供资源编号,在资源注册中心获取资源拥有者地址列表。(客户端)
2、僵尸地址汇报:提供资源编号和僵尸地址。
3、资源注册中心功能:(服务器)
3.1、注册资源:接收资源和地址,形成以资源编号为键,资源拥有者地址列表为值的键值对集合;
以资源拥有者ip为键,该资源拥有者所拥有的资源编号列表为值的键值对集合。
3.2、注销资源:
3.2.1、接收资源拥有者ip,删除其所拥有的所有资源;
3.2.2、接收资源编号,删除对应地址。
3.3、发现资源:接收资源,提供拥有该资源的地址列表。
3.4、处理僵尸地址。

4.技术实现

4.1 多线程安全

单例的数据要保证多线程安全性,要给方法加锁,保证同时间只有一个线程在访问一个加了同一把锁的方法,以便数据可靠性的安全性

实例访问:https://www.cnblogs.com/geeklee/articles/17431250.html

4.2最小数据选择

选择M个对象中某个数值相对小的N个对象出来:

实例访问:https://www.cnblogs.com/geeklee/articles/17431377.html小数据选择

4.3 深克隆

深克隆:在最后一个方法中,获取List时,用深克隆的方法保护原对象:创造一个新的对象,为其分配内存空间,不会返回原有的List的地址,也就不会对原有的List更改

  1. 代码完整实现

    目标实现:https://www.cnblogs.com/geeklee/articles/17431180.html

posted @ 2023-05-25 15:21  Geek李  阅读(20)  评论(0)    收藏  举报