资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
中间件集群实现和使用说明 关键字: Master 主控制器 节点机 节点探针功能目标a、 扩展中间件负载能力,b、 在全系统内实现资源调度,c、 对外屏蔽中间件的工作,实现方案其他实现方案以下是我以前的思路和想法,放在这里仅做参考;体系结构和功能分层模块、接口、系统运行类、数据、模型计算模型主控制器MasterCLUSTER中总是有一个机器或一个机器的一个中间件节点担任主控制器,其他的节点之间可以知道别的节点的信息,也可以不知道,但主控制器必须知道其他节点的信息,并在CLUSTER的集体事务中担任协调者和仲裁者;共享数据区(进程间通信模型)共享数据区在不同的进程间担任共享内存的角色,CLUSTER通过其他的机制保证数据的完整性和一致性;资源管理器:将对共享数据的操作抽象成对有可能竞争的资源,CLUSTER通过资源管理器管理共享的数据和资源,当一个节点宕掉的时候,其他的节点接管资源管理器,资源管理器把数据、资源和对数据、资源的操作封装在一起,也将是支持分布式事务的两阶段提交协议的主要模型;中间件运行监控(进程间通信模型)一个进程中的一个线程监听另一个进程的运行状态;负载调度(负载计算模型)负载调度包括四个方面:如何选取计算机的负载参数;计算机负载状况评估;任务分配方案; 任务分配;节点探测(剩余计算模型)节点探测包括:如何选取计算机的计算能力参数; 剩余计算能力的评估; 节点信息监控和节点信息数据传输;使用过场a、 启动中间件;在prop.xml文件中设置的属性为true,则系统启动中间件并首先启动80端口为主控制器,并依次启动三个中间件web端口为80,8080,8081,系统首先将80端口的中间件指定为主控制器,要保证当前目录下的node 即个个web端口的tomcat 的配置文件非空、正确。系统启动的时候会创建一批数据结构和维护线程(从略)。b、如果prop.xml文件中的设置的属性为false,则系统启动中间件时,会发一条广播消息给系统,寻找Master控制器,如果没有,则系统等待Master启动,然后,下载Master机器的prop.xml,和./ierp/bin/目录下的xml 文件,以保持配置同步;c、Master裁决和讨论;系统结构支持对Master的选举产生和独裁指定的两种方式,目前系统采用后种,默认Master不会宕掉,如果Master宕掉的时候,监控线程重启80端口并重设80端口为Master;其余的节点机当发现Master 宕掉时,暂时不讨论重选Master,等待Master重启;d、 共享数据区的使用;个个节点机调用统一的接口ClusterTool.getShareDataArea().setToMasterShareData(id,obj);将数据写到Master的共享数据区里去,再有Master定时写到所有的节点机器的共享数据区里去,只有Master自己才调用ClusterTool.getShareDataArea().setShareData(id,obj);的方法,e、 节点信息探测;在每一个节点机器都有一个动态的采集系统节点的信息的线程;f、 负载调度;负载的任务调度是通过Master调用负载分配器,分发客户的请求;并监控节点机的负载情况,负载分配器共实现以下分配方式:Typical:典型的根据机器的静态的配置情况,计算其应有的计算能力,并根据其计算的结果和比例分配任务;推荐使用该配置,Round:单循环的根据Cluster的节点列表,依次调用,如果是Master 跳过;Random:随机的随机选取,如果是Master 跳过;WeightBased:剩余计算能力的根据机器的动态的负载情况,计算其剩余的计算能力,为其分配负载,各个分配模式中强制使Master不参与调度,并在且只在其他节点机都宕掉时才接管所有的任务;负载调度实现的体系结构支持以下几个方面的独立扩展,不影响整个系统的结构:1、计算机计算能力评估的数学模型; 2、计算机计算能力参数的获取; 3、计算机负载状况评估的数学模型; 4、计算机负载参数的获取; f、系统登陆;系统登陆时在注册本节点机的服务环境的同时,将信息登记到Master的机器上去,如果客户端在请求原url没有成功的时候,会重定向到Master上面,并带有客户端的唯一标识(李充蒲写的)和不是新登陆的标志(NoLogin),请求Master 重新分配一个新的url,如果Master连接不上,线程重试,连续失败10次,说明Master宕掉,客户进程终止,Master发现不是新登陆的用户,会查找该用户的注册服务器的信息,一同分配到一个新的节点机,并恢复其用户的服务器环境;调用负载分配模块得到一个新的url 写回客户端,客户端得到这个url ,到本地的ClusterNode 数组里将这个Node 找回,set 到RemoteUrlFactory.lastUseClusterNode 的属性中,以完成一次url 节点的转换。also:该计算模型支持系统的使用过程中的无缝连接,不必重新登陆;g、 节点之间的远程调用;将远程调用扩展到Cluster之间,一个机器可以远程操作其他的节点,通过修改RemoteUrlFactory;h、 系统故障自动恢复;当系统内有节点发生故障时,cluster系统自动将任务分到另一个节点继续对外提供服务,系统重新启动一个与发生故障的节点相同的节点代替它,继续重新对外提供服务。系统不必重新登陆,只是回滚当前的事务,对用户来说屏蔽系统故障和内部工作场景。现存问题参考文献SUN_CLUSTER方案
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号