应用于静态集群上的分布式通信系统及方法技术方案

技术编号:14444633 阅读:98 留言:0更新日期:2017-01-15 09:28
本发明专利技术公开了一种应用于静态集群上的分布式通信系统及方法,在包括N台主机,m个应用服务进程的静态集群上,服务于该静态集群的分布式通信系统包括设于每台主机上的天使服务进程,极速配置库和m个天使客户端库;每个应用服务进程均调对应的用天使客户端库,天使服务进程和各个应用服务进程均与极速配置库连接,天使服务进程分别与各个应用服务进程连接,N≥1,m≥2;本发明专利技术具有面对静态集群环境、实现简单、效率高的特点。

【技术实现步骤摘要】

本专利技术涉及一种分布式通信中间件技术,尤其是涉及一种可在规模较大的多台主机上,多个应有程序中使用服务名进行相互通信的应用于静态集群上的分布式通信系统及方法
技术介绍
在传统的信息系统中,随着信息化的深入,信息系统的规模在不断的扩大。例如,面向交通行业的软件,因为线路的不断建设、信息化的深入、互联互通的需求等原因,系统规模不断扩大,需要相互通信的主机规模甚至达到了千台级别。为了解决大规模集群的通信问题,产生了分布式消息队列技术。但是分布式消息队列技术的实现大部分是面向互联网行业的开源实现,应用于传统行业软件会有功能、性能、运维、授权协议等一系列问题。随着业务的发展,系统规模不断扩大,呈现出分布式与集群等特点。系统中一部分业务模块需要使用多台主机组成一个集群才能完成业务。另一部分业务模块需要分布在多台主机上,甚至多地多台主机上进行工作,主机既需要相互通信,又不能因为局部、或者大部分出问题而影响其他部分。在这样的技术需求背景下,如果继续使用传统的客户端、服务端通信模型进行软件开发,设计、开发、维护的难度都非常巨大。
技术实现思路
本专利技术的专利技术目的是为了克服现有技术中的现有业务需求下分布在一定规模主机上的多个应用程序无法进行高性能通信的不足,提供了一种可在规模较大的多台主机上,多个应用进程中使用服务名进行相互通信的用于静态集群上的分布式通信系统及方法。为了实现上述目的,本专利技术采用以下技术方案:一种应用于静态集群上的分布式通信系统,在包括N台主机,m个应用服务进程的静态集群上,服务于该静态集群的分布式通信系统包括设于每台主机上的天使服务进程,极速配置库和m个天使客户端库;每个应用服务进程均调对应的用天使客户端库,天使服务进程和各个应用服务进程均与极速配置库连接,天使服务进程分别与各个应用服务进程连接,N≥1,m≥2;极速配置库中设有应用服务进程信息表与天使服务进程信息表;应用服务进程信息表由4个字段构成,4个字段分别为应用服务进程服务名,应用服务进程编号,应用服务进程对应的天使服务进程编号和应用服务进程在线状态;其中,应用服务进程服务名是应用服务进程信息表的主键;应用服务进程在线状态字段是动态字段,应用服务进程根据应用服务进程与天使服务进程之间的连接状态进行更新,其它字段均为静态字段;天使服务进程信息表由5个字段构成,5个字段分别为天使服务进程地址信息,天使服务进程编号,天使服务进程附属应用服务进程起始编号,天使服务进程附属应用服务进程个数和天使服务进程在线状态;天使服务进程地址信息是天使服务进程信息表的主键,天使服务进程为动态字段,天使服务进程在线状态根据本地天使服务进程与其它天使服务进程之间的连接状态进行更新,同时更新的包括天使服务进程附属的应用服务进程在线状态。本专利技术解决了分布在一定规模主机上的多个应用程序进行高性能相互通信的问题,提供了一种在规模较大的多台主机上,多个应有程序可以使用服务名进行相互通信中间件系统。本专利技术使用简单,对用户友好。在一个应用服务进程需要与多个应用服务进程进行通信的时候,如果使用客户端、服务端模型,应用服务进程需要管理多个连接,操作复杂,且随着需要相互通信的应用服务进程数量的增多,开发复杂度快速上升;如果整个集群中这种需要相互通信的应用服务进程数量特别多,将消耗比较多的系统资源。相对于客户端、服务端通信模型,本专利技术可以按照服务名进行通信。现有的开源消息技术基本只支持三台主机以上的集群;开源消息队列技术在集群中N/2+1台机器出现网络故障或者主机故障时便不能进行通信;开源消息队列技术在集群规模越来越大的时候,通信效率呈现下降;开源消息队列技术在集群出现分裂时,处于少数的主机不能使用消息队列;开源消息队列面临遵守开源协议的问题,需要面对动态集群技术,实现复杂度高、效率低,相对于开源消息队列技术,本专利技术可以适应一台、两台到多台主机的集群,在集群规模变大时,通信效率保持稳定;少数的主机之间依旧可以通信;本专利技术面对静态集群环境,实现简单,效率高。一种应用于静态集群上的分布式通信系统的方法,包括关系表的插入过程:关系表为应用服务进程信息表或天使服务进程信息表;步骤1:从要插入行的行内容中取出主键内容;步骤2:对主键进行哈希计算,得到哈希值;步骤3:在哈希区寻找与哈希值对应节点的位置,如果该节点没有被使用,转入步骤4,如果该节点已经被使用,转入步骤6;步骤4:在节点内写入节点信息,节点信息包括主键、行号和下个节点偏移;其中,行号为关系表的表头中的待插入行号,表头包括行数目;步骤5:将行内容写入待插入行号的行,待插入行号加1;步骤6:按照节点信息中下一个节点偏移信息,依次寻找下一个节点,直到下一个节点偏移为-1,将-1改为拉链区可用节点偏移,在拉链区可用偏移的位置上,写入节点信息,将拉链区可用偏移号加1;步骤7:将行内容写入待插入行号的行,待插入行号加1;其中,哈希计算包括如下步骤:步骤1:采用公用的哈希算法对主键进行哈希,得到一个整数;步骤2:将整数对行数目取余,得到一个哈希值。作为优选,还包括查询的过程:步骤1:对查询主键进行哈希计算,得到哈希值;步骤2:在哈希区寻找与哈希值对应节点的位置,比较节点的主键内容与查询主键内容是否相同,相同时取节点中记录的行号信息;不相同时,取下一个节点的偏移;步骤3:按照下一个节点的偏移,依次比较节点的主键与查询主键是否相同,直到找到相同的节点,取该节点中记录的行号信息;步骤4:如果没有找到行号信息,查询失败;其中,哈希计算包括如下步骤:步骤1:采用公用的哈希算法对主键进行哈希,得到一个整数;步骤2:将整数对行数目取余,得到一个哈希值。作为优选,还包括在线状态同步触发步骤:步骤1:取当前系统时间,将当前系统时间减去上一次的系统时间,得到时间差;若时间差>1秒,转入步骤2;若时间差≤1秒,则睡眠100毫秒,循环执行步骤1;步骤2:检测事件触发标志是否为1,或者是否到了同步周期;如果是,转入步骤3;否则,继续执行步骤2;步骤3:将事件触发标志修改为0,执行在线状态同步过程;步骤4:将上一次系统时间赋值为获取的当前系统时间,将周期时间赋值为当前系统时间加周期值,继续执行步骤1。作为优选,还包括在线状态同步过程:步骤1:天使服务进程从极速配置库中读取附属于自己的应用服务进程的在线状态;步骤2:天使服务进程将附属于自己的应用服务进程的在线状态进行压缩,构成一个在线状态更新包;步骤3:向其他的所有主机的天使服务进程发送自己附属的应用服务进程的在线状态更新包;步骤4:接收到在线状态更新包的天使服务进程,解压缩在线状态更新包,修改本地的极速配置库。作为优选,还包括应用服务进程登录过程:步骤1:在主机i上,应用服务进程j在天使服务进程i上登录,应用服务进程j调用天使客户端库的登录接口,传入自己的服务名jX;i=1,2,…,N;j=1,2,…,m;步骤2:天使服务进程i接到应用服务进程j登录请求,按照服务名j查询查询本地极速配置库;如果查到极速配置库里面存在该服务的配置,返回应用服务进程j的编号及登录成功的信息,修改极速配置库内应用服务进程j的登录状态为已经登录,转入步骤3;如果没有查到极速配置库里面存在该服务的配置,返回-1及登录失败的信息;步骤3:天使服务进程i本文档来自技高网...
应用于静态集群上的分布式通信系统及方法

【技术保护点】
一种应用于静态集群上的分布式通信系统,其特征是,在包括N台主机(2),m个应用服务进程(23)的静态集群上,服务于该静态集群的分布式通信系统包括设于每台主机上的天使服务进程(21),极速配置库(22)和m个天使客户端库(24);每个应用服务进程均调对应的用天使客户端库,天使服务进程和各个应用服务进程均与极速配置库连接,天使服务进程分别与各个应用服务进程连接,N≥1,m≥2;极速配置库中设有应用服务进程信息表与天使服务进程信息表;应用服务进程信息表由4个字段构成,4个字段分别为应用服务进程服务名,应用服务进程编号,应用服务进程对应的天使服务进程编号和应用服务进程在线状态;其中,应用服务进程服务名是应用服务进程信息表的主键;应用服务进程在线状态字段是动态字段,应用服务进程根据应用服务进程与天使服务进程之间的连接状态进行更新,其它字段均为静态字段;天使服务进程信息表由5个字段构成,5个字段分别为天使服务进程地址信息,天使服务进程编号,天使服务进程附属应用服务进程起始编号,天使服务进程附属应用服务进程个数和天使服务进程在线状态;天使服务进程地址信息是天使服务进程信息表的主键,天使服务进程为动态字段,天使服务进程在线状态根据本地天使服务进程与其它天使服务进程之间的连接状态进行更新,同时更新的包括天使服务进程附属的应用服务进程在线状态。...

【技术特征摘要】
1.一种应用于静态集群上的分布式通信系统,其特征是,在包括N台主机(2),m个应用服务进程(23)的静态集群上,服务于该静态集群的分布式通信系统包括设于每台主机上的天使服务进程(21),极速配置库(22)和m个天使客户端库(24);每个应用服务进程均调对应的用天使客户端库,天使服务进程和各个应用服务进程均与极速配置库连接,天使服务进程分别与各个应用服务进程连接,N≥1,m≥2;极速配置库中设有应用服务进程信息表与天使服务进程信息表;应用服务进程信息表由4个字段构成,4个字段分别为应用服务进程服务名,应用服务进程编号,应用服务进程对应的天使服务进程编号和应用服务进程在线状态;其中,应用服务进程服务名是应用服务进程信息表的主键;应用服务进程在线状态字段是动态字段,应用服务进程根据应用服务进程与天使服务进程之间的连接状态进行更新,其它字段均为静态字段;天使服务进程信息表由5个字段构成,5个字段分别为天使服务进程地址信息,天使服务进程编号,天使服务进程附属应用服务进程起始编号,天使服务进程附属应用服务进程个数和天使服务进程在线状态;天使服务进程地址信息是天使服务进程信息表的主键,天使服务进程为动态字段,天使服务进程在线状态根据本地天使服务进程与其它天使服务进程之间的连接状态进行更新,同时更新的包括天使服务进程附属的应用服务进程在线状态。2.一种基于权利要求1所述的应用于静态集群上的分布式通信系统的方法,其特征是,包括关系表的插入过程:步骤1:从要插入行的行内容中取出主键内容;步骤2:对主键进行哈希计算,得到哈希值;步骤3:在哈希区寻找与哈希值对应节点的位置,如果该节点没有被使用,转入步骤4,如果该节点已经被使用,转入步骤6;步骤4:在节点内写入节点信息,节点信息包括主键、行号和下个节点偏移;其中,行号为关系表的表头中的待插入行号,表头包括行数目;步骤5:将行内容写入待插入行号的行,待插入行号加1;步骤6:按照节点信息中下一个节点偏移信息,依次寻找下一个节点,直到下一个节点偏移为-1,将-1改为拉链区可用节点偏移,在拉链区可用偏移的位置上,写入节点信息,将拉链区可用偏移号加1;步骤7:将行内容写入待插入行号的行,待插入行号加1;其中,哈希计算包括如下步骤:步骤1:采用公用的哈希算法对主键进行哈希,得到一个整数;步骤2:将整数对行数目取余,得到一个哈希值。3.根据权利要求2所述的应用于静态集群上的分布式通信系统的方法,其特征是,还包括查询的过程:步骤1:对查询主键进行哈希计算,得到哈希值;步骤2:在哈希区寻找与哈希值对应节点的位置,比较节点的主键内容与查询主键内容是否相同,相同时取节点中记录的行号信息;不相同时,取下一个节点的偏移;步骤3:按照下一个节点的偏移,依次比较节点的主键与查询主键是否相同,直到找到相同的节点,取该节点中记录的行号信息;步骤4:如果没有找到行号信息,查询失败;其中,哈希计算包括如下步骤:步骤1:采用公用的哈希算法对主键进行哈希,得到一个整数;步骤2:将整数对行数目取余,得到一个哈希值。4...

【专利技术属性】
技术研发人员:丁康汪月林
申请(专利权)人:浙江浙大中控信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1