一种面向大规模网络的实时高可靠消息分发系统及其方法与流程

文档序号:15980488发布日期:2018-11-17 00:16阅读:247来源:国知局
本发明属于网络传输领域,尤其涉及一种面向大规模网络的实时高可靠消息分发系统及其方法。
背景技术
:如今,高速发展的互联网已经成为生活中不可或缺的一部分,如何实现大规模、实时和高可靠的数据传输一直是互联网研究的热门方向。在互联网出现伊始,由于数据量都比较小,大规模的数据分发不会产生太大的时间与资源消耗。但是随着流媒体的不断发展和网络用户的不断增加,蓝光视频、软件更新和在线视频流等的分发越来越需要更多的网络资源,基于内容的服务和应用呈现指数增长。据估计,视频流量将占所有消费者互联网流量的82%。而网络内容分发需要提供较低的延迟、快速的传输速度和服务的可靠性,所以解决网络数据分发的实时性与可靠性是一个需要解决的问题。技术实现要素:本发明克服了上述现有技术的不足,提供一种面向大规模网络的实时高可靠消息分发系统及其方法。本发明的技术方案:一种面向大规模网络的实时高可靠消息分发系统,包括多媒体数据、中央服务器、中转服务器和终端用户;所述多媒体数据是多媒体资源的生产者,用于生产多媒体资源,是众多多媒体平台;所述中央服务器用于资源控制分发,存储所有的多媒体资源;所述中转服务器用于存储有资源副本,架设在各个不同的地区,向本地区用户分发资源;所述终端用户是多媒体资源的请求者和使用者;所述多媒体平台连接中央服务器,所述一个中央服务器连接若干个中转服务器,所述一个中转服务器连接若干个终端用户,所述若干个终端用户分成若干个小组,每个小组之间的终端用户相互连接。进一步地,所述中央服务器与中转服务器之间通过amqp传输控制命令,用rabbitmq实现一个控制信息的消息通道,所述中转服务器与终端用户之间通过所述消息通道传输调度命令。一种基于所述面向大规模网络的实时高可靠消息分发系统实现的面向大规模网络的实时高可靠消息分发的方法,包括以下步骤:步骤a、中央服务器通过控制rabbitmq经过中转服务器向终端用户广播一条控制信息,确定当前在线的终端用户及其状态;步骤b、当中央服务器需要向终端用户分发消息时,中央服务器通过rabbitmq传输接下来所要发送的文件的信息,经过各个中转服务器,使各个终端用户接收到中央服务器端发送的消息信息后,返回一个接收反馈信息,根据所传输的消息信息,建立对应的消息传输队列;步骤c、中央服务器在消息发送前,会发送一个确认消息确认当前消息队列的建立情况,满足需求后向所述通道广播对应的消息;步骤d、当所需要发送的消息过大时,系统会使用p2p进行多媒体文件的分发,会先发送一个种子的长度信息给各个需要接收该消息的终端用户,终端用户反馈接收情况;步骤e、中央服务器端通过中转服务器向终端用户传输之后所需要分发的消息文件的种子文件,终端用户收到完整的种子文件后,通过中转服务器给中央服务器发送一个反馈,终端用户开启本地p2p下载进程,通过所述种子文件中的信息下载种子文件。进一步地,步骤b中各个终端用户接收到中央服务器端发送的消息信息后,终端用户会读取所述消息信息,判断所述要分发的文件是否已被发送过,若发送过,则不进行处理;若未发送过,则根据文件的大小,使用对应分发造作对文件进行分发。进一步地,当所需要发送的文件小时,采用rabbitmq对小文件进行分发,方法如下:在文件分发过程中,中转服务器读取当前多媒体文件需要下发的节点,将需要下发文件的文件信息通过所述通道传输给当前在线的需要接收的节点;当终端用户接收到传送而来的文件基本信息后,将自己的节点信息和接收到的文件配置信息验证通过中转服务器反馈中央服务器,同时建立相应的文件接收队列;中央服务器通过所述通道,收集已经完成通道建立的用户节点的信息,向建立完成接收通道的节点分发文件内容;在终端用户异步接收所述文件,并在接收完成后返回一个正确接收反馈。进一步地,使用rabbitmq对小文件进行分发时,分为两种分发方式,分别是直接分发模式和订阅/广播分发模式;如果只需要向部分节点传输文件,优先使用直接分发模式,分别向这些节点分发文件;如果需要向全部节点分发文件,优先使用订阅/广播模式。进一步地,步骤d中所述当消息过大时,使用p2p进行分发,分发方法如下:步骤d1、中央服务器读取目录,扫描需要分发的文件,并生成文件的种子文件;步骤d2、中央服务器将文件的种子文件信息下发至需要接收该文件的节点;步骤d3、中央服务器接收到接收节点接收通道建立完成的反馈后,使用通道传输种子文件;步骤d4、中央服务器将文件信息通过通道下发至中转服务器;当中转服务器建立接收通道后,中央服务器向中转服务器下发文件;步骤d5、中央服务器接收到中转服务器接收完成的反馈,向所有终端用户分发接文件的文件信息,节点在接收到文件信息后,开启bittorrent下载,解析文件的种子信息,向中转服务器请求下载;步骤d6、终端节点在接收完成文件后,向服务器端发送接收完成反馈;步骤d7、如果大部分节点接受完成配置,则返回步骤d1;否则等待终端节点接收。本发明相对于现有技术具有以下有益效果:本发明公开了一种面向大规模网络的实时高可靠消息分发系统及其方法,通过采用将amqp技术与p2p技术相融合的方法,将不同规模的文件分配给不同的传输方式分发,提升分发的速率,实现分发的实时性与高可靠性,更好得解决网络数据在分发过程中无法兼顾实时性与可靠性的问题,提升数据分发的速率的架构。附图说明图1是本发明的结构示意图;图2是本发明流程图;图3是小文件分发流程图;图4是大文件分发流程图;图5是不同数量节点下的100mb资源分发速率图;图6是不同数量节点下的1000mb资源分发速率图;图7是单机模拟60节点分发不同规模资源速率图。具体实施方式以下将结合附图对本发明进行详细说明。具体实施方式一本实施例公开了一种面向大规模网络的实时高可靠消息分发系统,如图1所示,包括多媒体数据、中央服务器、中转服务器和终端用户;所述多媒体数据是多媒体资源的生产者,用于生产多媒体资源,是众多多媒体平台;所述中央服务器用于资源控制分发,存储所有的多媒体资源;所述中转服务器用于存储有资源副本,架设在各个不同的地区,向本地区用户分发资源;所述终端用户是多媒体资源的请求者和使用者;所述多媒体平台连接中央服务器,所述一个中央服务器连接若干个中转服务器,所述一个中转服务器连接若干个终端用户,所述若干个终端用户分成若干个小组,每个小组之间的终端用户相互连接。具体实施方式二具体地,所述中央服务器与中转服务器之间通过amqp传输控制命令,用rabbitmq实现一个控制信息的消息通道,所述中转服务器与终端用户之间通过所述消息通道传输调度命令,通过rabbitmq能够使本发明的整个系统获得更好的分发速度,让中央服务器和中转服务器都能发挥更高的效能。amqp(advancedmessagequeuingprotocol)全称为高级消息队列协议,是一个架设在计算机网络应用层之上,提供统一消息服务的高级消息传输队列协议。架设中转服务器,系统运行时,发送端将消息投递至中转服务器,由于发送端投递关键字的不同,中转服务器根据这些不同的关键字将消息分发至不同的消息接收端,实现发送端与接收端的异步互联。同时,中转服务器端负责消息的维护和整体系统的负载均衡。能够通过不同的编程语言编写,可以在不同的编程语言中运行。rabbitmq是基于amqp标准实现的一个典型的开源消息中间件;amqp是架设在计算机网络应用层之上,自恰的一套传输协议。而其典型实现rabbitmq服务器,是由erlang语言编写的,用于集群消息分发的开源程序。rabbitmq拥有几种不同的消息分发传输模式,分别是消息直传模式,广播/订阅模式和接收关键字模式。直传模式生产者将生产的消息推送至消息队列,所有关注该队列的消费者都可以接收该消息,接收后该消息消失。广播/订阅模式中,生产者在产生消息之后,将该消息投递至所有订阅该消息的接收队列之中,供消费者接收。在接收关键字模式中,生产者只将生产的消息投递至监听关键字符合的队列之中。具体实施方式三一种基于所述面向大规模网络的实时高可靠消息分发系统实现的面向大规模网络的实时高可靠消息分发的方法,如图2所示,包括以下步骤:步骤a、中央服务器通过控制rabbitmq经过中转服务器向终端用户广播一条控制信息,确定当前在线的终端用户及其状态;步骤b、当中央服务器需要向终端用户分发消息时,中央服务器通过rabbitmq传输接下来所要发送的文件的信息,经过各个中转服务器,使各个终端用户接收到中央服务器端发送的消息信息后,返回一个接收反馈信息,根据所传输的消息信息,建立对应的消息传输队列;步骤c、中央服务器在消息发送前,会发送一个确认消息确认当前消息队列的建立情况,满足需求后向所述通道广播对应的消息;步骤d、当所需要发送的消息过大时,系统会使用p2p进行多媒体文件的分发,会先发送一个种子的长度信息给各个需要接收该消息的终端用户,终端用户反馈接收情况;步骤e、中央服务器端通过中转服务器向终端用户传输之后所需要分发的消息文件的种子文件,终端用户收到完整的种子文件后,通过中转服务器给中央服务器发送一个反馈,终端用户开启本地p2p下载进程,通过所述种子文件中的信息下载种子文件。p2p(peer-to-peer)网络,又称对等式网络,是一种没有中央服务器,依靠众多的用户节点,组成的一个庞大的互联网络。它的作用在于,依托众多的用户节点,互联互通传输资源,以减少局部网络流量过大,负载过高,降低单点故障带来的问题。在p2p网络中,每个节点即是用户节点,又是服务节点,符合网络共享的思维。具体来说,p2p网络分为结构化的p2p网络、非结构化的p2p网络和松散结构的p2p网络。结构化的p2p网络在节点之间互相连接,构成有一定规则的拓扑结构以供资源搜索时使用,典型代表有chord、kademlia等。无结构的p2p网络节点之间相互连接,但没有形成有结构的网络拓扑,节点间通行依靠广播形式来完成,典型代表有gnutella。松散结构的p2p网络介于有结构的p2p网络与无结构的p2p网络之间,通常会有中央服务器存在,典型代表有freenet。结构化的p2p网络效率最高,其中以kademlia网络结构为代表。实现这种网络结构的典型程序有bittorrent。bittorrent是一款由python语言编写的开源程序,bittorrent协议是一个架构在tcp/ip层上的一个传输通信协议,是一个应用层协议。在bittorrent协议中,可以通过两种方式请求资源,一种是通过结构化的dht(distributedhashtable)网络,另外一种是通过种子文件来请求资源。本发明用的是改进后的bittorrent网络来分发资源。具体实施方式四具体地,步骤b中各个终端用户接收到中央服务器端发送的消息信息后,终端用户会读取所述消息信息,判断所述要分发的文件是否已被发送过,若发送过,则不进行处理;若未发送过,则根据文件的大小,使用对应分发造作对文件进行分发。具体实施方式五具体地,如图3所示,当所需要发送的文件小时,若是采用p2p网络进行分发会加大网络中的资源消耗,而且分发效率低,所以采用rabbitmq对小文件进行分发,分发方法如下:在文件分发过程中,中转服务器读取当前多媒体文件需要下发的节点,将需要下发文件的文件信息通过所述通道传输给当前在线的需要接收的节点;当终端用户接收到传送而来的文件基本信息后,将自己的节点信息和接收到的文件配置信息验证通过中转服务器反馈中央服务器,同时建立相应的文件接收队列;中央服务器通过所述通道,收集已经完成通道建立的用户节点的信息,向建立完成接收通道的节点分发文件内容;在终端用户异步接收所述文件,并在接收完成后返回一个正确接收反馈。具体实施方式六具体地,使用rabbitmq对小文件进行分发时,分为两种分发方式,分别是直接分发模式和订阅/广播分发模式;如果只需要向部分节点传输文件,优先使用直接分发模式,分别向这些节点分发文件;如果需要向全部节点分发文件,优先使用订阅/广播模式。如果只需要向部分节点传输文件,优先使用直接分发模式,分别向这些节点分发文件,这样可以减少广播控制信息带来的流量,但是在投递分发的过程中会增加一定的传输工作量。如果需要向全部节点分发文件,那么优先使用订阅/广播模式,这种情况下,广播控制信息对整个网络的影响被缩小,同时订阅/广播模式使用较少的文件副本,减少了文件磁盘操作的工作量。具体实施方式七在内容分发网络中,对于较大的文件,如果使用一对多的传输方式,使得单一节点的网络带宽成为整个系统的性能瓶颈,且一对多的传输方式,那么会出现发送节点的网络拥塞,导致分发效率降低。而p2p传输网络完美的解决了这一问题,p2p网络bittorrent,使用的是多对多的传输方式,每个节点在请求未接收到的文件分片的同时,也在分发已经接收到的文件分片。这样虽然某个单一节点的接收速率降低了,但整个系统的接收时间却降低了。因此,使用p2p网络进行分发加快分发效率,明显减少全局分发时间。所以,本发明采用修改后的bittorrent网络对大文件进行分发。具体地,如图4所示,步骤d中所述当消息过大时,使用p2p进行分发,分发方法如下:步骤d1、中央服务器读取目录,扫描需要分发的文件,并生成文件的种子文件;步骤d2、中央服务器将文件的种子文件信息下发至需要接收该文件的节点;步骤d3、中央服务器接收到接收节点接收通道建立完成的反馈后,使用通道传输种子文件;步骤d4、中央服务器将文件信息通过通道下发至中转服务器;当中转服务器建立接收通道后,中央服务器向中转服务器下发文件;步骤d5、中央服务器接收到中转服务器接收完成的反馈,向所有终端用户分发接文件的文件信息,节点在接收到文件信息后,开启bittorrent下载,解析文件的种子信息,向中转服务器请求下载;步骤d6、终端节点在接收完成文件后,向服务器端发送接收完成反馈;步骤d7、如果大部分节点接受完成配置,则返回步骤d1;否则等待终端节点接收。在bittorrent网络中,之所以能够以较高的传输速度共享文件,是因为其结构化的网络拓扑和文件分片共享机制。当请求产生时,客户端通过迭代的方式向整个dht(distributehashtable)网络查询该内容文件的所有者,并向部分所有者请求该文件。在文件的传输过程中,bittorrent网络的传输策略是优先向不同的请求者传输不同的文件分片,即优先分发稀有分片。这样,可以更早的开始请求者之间的互传,使整个系统的内容文件整体分发效率尽快达到最优。具体实施方式七结合上述实施方式,实验选择了平均下载速度作为测试结果的主要衡量标准,这一参数能够体现系统整体的分发性能,受到波动的影响较小。测试数据的平均速率为文件大小与文件从分发开始到所有节点均接收到的时间的比值,而非单一节点接收到文件。所有实验都在几台服务器之间完成,实验过程中使用的平台的配置信息如表1所示。表1实验平台配置信息如图5所示,使用rabbitmq或使用bittorrent网络在不同节点数量下的分发传输速率图。如图可以看出,在分发较小规模的文件(100mb)时,在节点数目较小时,rabbitmq传输占有绝对的优势,当请求节点数目增加时,rabbitmq传输还是优于bittorrent传输的,只是优势越来越小。在节点数量不断增加的情况下,由于机器性能与网络的原因,传输速率有所下降。由此说明rabbitmq适合一定规模下的小文件传输,具有较高的传输效率。如图6所示,当传输文件的大小由100mb提升到1000mb时,在10节点时,由于系统资源利用率没有达到最大,rabbitmq传输速率依然高于bittorrent传输;但当节点数目不断增加时,系统资源负载均衡的情况下,bittorrent网络的分片互传机制体现出其优势,bittorrent网络的传输高于rabbitmq网络。由此说明bittorrent更适合大文件的传输,在节点众多的情况下传输效率高。如图7所示,为rabbitmq传输、bittorrent传输与本系统传输不同大小文件的速率图,测试数据的计算的时间开始为从文件分发到文件分发结束。由折线图可以看出,整个文件分发的过程中,由于本发明对rabbitmq传输和bittorrent传输进行了部分简化与修改,并在此基础上增加了一些传输控制,故而对全规模段文件都有较好的传输速率。在传输文件小时,传输前的控制信息传输在整体传输过程中占了较高的比例,所以在文件只有1mb大小时,传输速率偏低。在传输文件大时,控制消息所占的比例降低,传输速度波动基于平稳。本发明充分发挥了节点性能,降低了服务器的负载,提升了整个传输过程的效率。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1