基于ZeroMQ的多机分布式计算的通信框架设计方法技术

技术编号:19242723 阅读:19 留言:0更新日期:2018-10-24 05:24
本发明专利技术涉及一种基于ZeroMQ的多机分布式计算的通信框架设计方法,属于分布式计算系统领域。本发明专利技术的步骤是:第一步测试分析ZeroMQ官方单机多线程MT分布式计算模型,再基于MT模型设计不同地理位置的多机分布式计算框架模型,并针对网络变化进行动态调整,再加入负载均衡关键技术;第二步再在该多机模型的基础上,用消息中间件技术ZeroMQ实现该框架模型中各个节点之间的数据传输技术;之后在同一局域网中5台服务器上测试运行,最终实现基于ZeroMQ的多机分布式计算中通信框架的技术创新。本发明专利技术实现一个在多个服务器和多个客户端上运行的分布式计算通讯框架,并能包含数据冗余及负载均衡等相关功能。

【技术实现步骤摘要】
基于ZeroMQ的多机分布式计算的通信框架设计方法
本专利技术涉及一种基于ZeroMQ的多机分布式计算的通信框架设计方法,属于分布式计算系统领域。
技术介绍
根据分布式计算系统的起源,最先2002年以前芯片上的晶体管集成密度成指数上升,性能保持1.5倍增长,但是渐渐的随着晶体管密度的上升,空气散热已经无法解决散热问题,芯片制造商提出与其制造出单块性能更快的芯片不如在单块芯片上集成更多的计算核心—由此出现了多核CPU。从多核CPU的出现引出了单机的并行计算以及我们现在普遍涉及的分布式计算和云计算。由于随着计算机性能的一步步提高,信息技术的快速发展,人们产生的数据越来越多,人们已经进入了大数据时代,从而每天从人们产生的这些庞大的数据中寻找有用的信息及相关的天文和科学计算成为促进分布式计算和云计算的快速发展的动力。人们也借助信息技术的快速发展通过海量的数据攻克了许多由于前人因为计算能力有限而无法解决的问题。而且由于分布式系统的快速发展,从而使得把大数据处理相关技术变得非常亲民,让更多企业客户使用分布式系统可以处理高并发请求响应以及海量数据等。让更多企业客户体验到了分布式系统带来的便利。随着分布式计算系统和从海量数据中获得有用信息的互相促进与发展,双方都在信息技术中硬件系统的支撑下得到了跨越式的前进。由于分布式计算系统是由多台计算机和通信的软件通过计算机网络连接而成。正因为分布式系统时建立在网络之上的软件系统,所以分布式系统具有高度的内聚性和透明性。而且分布式系统可以应用在不同的工作平台上如PC机、工作站、局域网、广域网上。分布式系统最大的特点之一是可扩展性,它能够适应需求变化而扩展,应对企业的业务增长而带来的计算需求可以通过增加服务器的数量来增强分布式系统的整体处理能力。分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务。尤其是高并发或者大数据量的任务。分布式计算系统是由独立的服务器通过网络的松散耦合组成的。每个服务器都是都是一台单独的PC机,通过内部网络连接而成,每个节点之间通讯有一定的网络开销,所以要尽可能的减少节点之间的通讯,因为网络传输之间的瓶颈,所以提升每个服务器性能对于整体提升分布式系统的计算能力效果不大,因此分布式系统中的每个节点一般不采用高性能服务器,而是采用性能一般的普通PC服务器,提升分布式系统的整体性能要通过横向扩展即增加服务器数量,而不是纵向扩展即单个节点的服务器的性能。分布式系统另一个最大的特点是廉价高效,由成本低廉的PC服务器组成集群,在性能方面能够达到或超越大型机的处理性能,但是在成本上远远低于大型机。这也是分布式系统最吸引人之处。但是分布式系统也有它的缺点存在,如:1.故障排除难度高;由于分布在多台服务器上,故障排除及诊断问题难度较高。2.软件支持少;更少的软件支持是分布式系统的主要缺点。3.网络基础设施成本高;网络基础设置问题,包括传输、高负载、信息丢失等问题。4.安全性问题;开放式系统的特性让计算机分布式系统存在着数据的安全性和共享的风险问题。
技术实现思路
本专利技术要解决的技术问题是提供一种基于ZeroMQ的多机分布式计算的通信框架设计方法,是基于ZeroMQ官方给出的只有一个Client单机多线程模型基础上,研究了解其线程间的通讯原理,并在适用于线程与线程之间Client、Server和BrokerServer三者的通讯方式改进为适合多机之间的进程与进程之间的通讯方式,并根据分布式系统中每个Worker要做的具体工作内容重新改写中间代理服务器,之后根据上述内容写出每个模块的伪代码,再用Python语言实现各个功能模块的伪代码,并分别根据不同环境中修改源代码进行程序调试。实现一个在多个服务器和多个客户端上运行的分布式计算系统,并能包含数据冗余及负载均衡等相关功能。该专利技术方法可以作为分布式计算系统的设计及底层数据传输及负载均衡的方法的参照方案。本专利技术采用的技术方案是:一种基于ZeroMQ的多机分布式计算的通信框架设计方法,包括如下步骤:Step1、查阅当下分布式计算通信消息中间件设计中的主流技术,分别为RabbitMQ、ActiveMQ和ZeroMQ;Step2、基于ZeroMQ的消息中间件技术针对官方给出的单机多线程MT模型,并在一台装有Centos7的服务器上测试运行官方给出的单机多线程分布式计算通信模型中,分析线程间和多服务器间中由Client提交到BrokerServer,之后将数据流和区别任务类型的特定标识转发给WorkerServer,最后将结果根据标识逆传输回Client中的数据传输机制及原理;Step3、在步骤Step2的基础上,进行不同地理位置的多机分布式计算框架模型设计及实现,具体步骤如下:Step3.1、选取处在同一个局域网的5台系统为Centos7的服务器,记录其IP地址,作为多机分布式计算框架模型的实验设备,分布在不同地理位置的主机通过ZeroMQ消息中间件技术实现分布式计算中基于Socket间的数据传递;Step3.2、再在多机模型的基础上,用消息中间件技术ZeroMQ实现该分布式计算系统中Client、BrokerServer、Worker之间的任务提交、任务分配及计算结果回收的数据内容Socket传送技术,以及数据负载均衡和Client和Worker数量灵活伸缩的技术。具体地,所述的Step3.2的具体步骤如下:Step3.2.1、根据ZeroMQ官方文档里面提供的Figure20MultithreadedServer单机多线程的分布式计算模型,在此基础上将其改进为多个服务器跨主机的分布式计算模型,并实现由多个Client和WorkerServer绑定到BrokerServer,由BrokerServer根据分布式计算规模实现Client和Worker数量的弹性伸缩和之间数据传输的负载均衡控制功能模块;Step3.2.2、根据Step3.2.1中制定的多个服务器跨主机的分布式计算模型编写Client、WorkerServer、BrokerServer端伪代码;Step3.2.3、将Step3.2.2中的伪代码用Python语言实现;Step3.2.4、在Step3.2.3实现的代码的基础上,将其中涉及数据传输的Bind和Connect地址转换为在单个服务器上运行的分布式计算系统需要的具体Socket号,之后在PC机上运用python环境或者Centos7的Linux服务器环境下调试运行Step3.2.3实现的程序代码;Step3.2.5、在Step3.2.3实现的代码的基础上,将其中涉及的Bind和Connect地址转换为在多主机上运行的分布式计算系统需要的IP+Socket地址,然后在实验室的局域网中选取至少两台服务器或者PC机作为不同地理位置的多机分布式计算系统模型的试验机器,并调试及运行实现的代码。本专利技术的有益效果是:分布式系统普及能够帮助用户和企业以较低的成本能够获得高并发处理请求及海量数据处理的能力,同时由于普通的分布式系统底层消息通讯方式大多数都是基于TCP连接,所以有三次握手协议,导致分布式系统之间的每个节点互相通讯时占用了大量时间及带宽,这对于分布式系统所要求的及时性是一种很大的损失,彻底违背了分布本文档来自技高网
...

【技术保护点】
1.一种基于ZeroMQ的多机分布式计算的通信框架设计方法,其特征在于:包括如下步骤:Step1、查阅当下分布式计算通信消息中间件设计中的主流技术,分别为RabbitMQ、ActiveMQ和ZeroMQ;Step2、基于ZeroMQ的消息中间件技术针对官方给出的单机多线程MT模型,并在一台装有Centos7的服务器上测试运行官方给出的单机多线程分布式计算通信模型中,分析线程间和多服务器间中由Client提交到Broker Server,之后将数据流和区别任务类型的特定标识转发给Worker Server,最后将结果根据标识逆传输回Client中的数据传输机制及原理;Step3、在步骤Step2的基础上,进行不同地理位置的多机分布式计算框架模型设计及实现,具体步骤如下:Step3.1、选取处在同一个局域网的5台系统为Centos7的服务器,记录其IP地址,作为多机分布式计算框架模型的实验设备,分布在不同地理位置的主机通过ZeroMQ消息中间件技术实现分布式计算中基于Socket间的数据传递;Step3.2、再在多机模型的基础上,用消息中间件技术ZeroMQ实现该分布式计算系统中Client、Broker Server、Worker之间的任务提交、任务分配及计算结果回收的数据内容Socket传送技术,以及数据负载均衡和Client和Worker数量灵活伸缩的技术。...

【技术特征摘要】
1.一种基于ZeroMQ的多机分布式计算的通信框架设计方法,其特征在于:包括如下步骤:Step1、查阅当下分布式计算通信消息中间件设计中的主流技术,分别为RabbitMQ、ActiveMQ和ZeroMQ;Step2、基于ZeroMQ的消息中间件技术针对官方给出的单机多线程MT模型,并在一台装有Centos7的服务器上测试运行官方给出的单机多线程分布式计算通信模型中,分析线程间和多服务器间中由Client提交到BrokerServer,之后将数据流和区别任务类型的特定标识转发给WorkerServer,最后将结果根据标识逆传输回Client中的数据传输机制及原理;Step3、在步骤Step2的基础上,进行不同地理位置的多机分布式计算框架模型设计及实现,具体步骤如下:Step3.1、选取处在同一个局域网的5台系统为Centos7的服务器,记录其IP地址,作为多机分布式计算框架模型的实验设备,分布在不同地理位置的主机通过ZeroMQ消息中间件技术实现分布式计算中基于Socket间的数据传递;Step3.2、再在多机模型的基础上,用消息中间件技术ZeroMQ实现该分布式计算系统中Client、BrokerServer、Worker之间的任务提交、任务分配及计算结果回收的数据内容Socket传送技术,以及数据负载均衡和Client和Worker数量灵活伸缩的技术。2.根据权利要求书1所述的一种基于ZeroMQ的多机分布式计算的通信框架设计方法,其特...

【专利技术属性】
技术研发人员:朱彦飞戴伟王锋邓辉张晓丽卫守林罗静
申请(专利权)人:昆明理工大学
类型:发明
国别省市:云南,53

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

1