数据传输方法及服务器系统的制作方法

文档序号:8925042阅读:492来源:国知局
数据传输方法及服务器系统的制作方法
【技术领域】
[0001]本发明涉及一种数据传输方法及服务器系统。
【背景技术】
[0002]目前,互联网、数据传输、数据同步等技术领域当中,缓存服务器的使用十分重要。以带有查询功能的大型旅游网站为例,建立缓存服务器的目的是为了减轻数据库压力和加快查询服务器建立本地缓存的速度。缓存服务器负责从数据库中同步数据,作为查询服务器本地缓存建立的数据来源。
[0003]在查询服务器建立本地缓存时,需要从缓存服务器获取大量的数据,在查询服务器集群数量增长过快时,为了使查询服务器缓存建立时间不明显下降,需要增加大量缓存服务器来扩充服务能力,这对于缓存服务器集群的增长以及网络容量扩充压力较大,同时增加了对缓存服务器的维护成本。
[0004]而且,如果查询服务器集群发生集体当机,在灾难恢复时,所有的查询服务器(38台以上)向缓存服务器发送数据请求用以重建缓存。每台缓存服务器都需要传输大量的数据,网络带宽将成为瓶颈,使得查询服务器在恢复数据时极为缓慢。

【发明内容】

[0005]本发明要解决的技术问题是为了克服现有技术中缓存服务器集群的增长以及网络容量扩充压力较大,缓存服务器的维护成本高,缓存服务器为查询服务器传输数据时耗较长的缺陷,提供一种提高服务器数据传输速度并减少缓存服务器的使用数量以及维护成本的数据传输方法及服务器系统。
[0006]本发明是通过下述技术方案来解决上述技术问题:一种数据传输方法,所述数据传输方法利用一第一服务器向若干第二服务器传输若干数据,其特点在于,每一数据对应一 ID (身份标识号码),所述数据传输方法包括:
[0007]S1、对于每一数据,所述第一服务器将所述数据划分为若干份数据包,每一份数据包设有编号且大小不超过多播传输的报文大小的上限;
[0008]S2、所述第一服务器通过多播的方式向所述若干第二服务器传输所述若干数据的全部数据包;
[0009]S3、每一第二服务器根据ID以及编号合并数据包为数据。
[0010]其中,第一服务器可以为缓存服务器,第二服务器可以为查询服务器。现有技术中,缓存服务器向查询服务器传输数据是通过TCP (传输控制协议)协议以一对一的方式。利用这种方式为全部查询服务器提供数据时,数据传输缓慢,即使增加一定数量的缓存服务器依然不能有效地缩短数据传输时间,而且增加缓存服务器还会增加运营成本。
[0011]本发明利用多播技术,第一服务器只需将数据发送一次,所有的第二服务器均能够得到数据,从而达到节约带宽、提高传输速度的作用。本发明可以将所有的第二服务器加入多播组,并向第一服务器请求数据同步,由于多播传输报文的大小限制,本发明在利用多播的方式传输数据时需要对数据进行划分处理以满足多播传输报文对大小的规定。
[0012]现有的数据传输中,通常将数据按照不同的参数进行划分,并对划分后的参数进行压缩以满足多播传输报文对大小的限定,但是这种方式常会出现数据压缩后也无法满足大小的限定,且数据传输报文到达顺序不一致所产生的数据传输不稳定,即数据传输过程中容易引起第一服务器和第二服务器两端逻辑复杂化。
[0013]本发明将数据按照小于多播传输的报文大小的上限进行划分,并对数据包编号,使得数据能够利用多播技术进行传输,且第二服务器利用ID以及编号能够准确的拼接出数据。本发明的编号可以是连续的正整数,但并不局限于此,只要第二服务器能够利用编号及ID拼接出数据的编号方式,均落入本发明所保护的范围。
[0014]较佳地,所述编号为全局顺序编号,步骤S2包括:
[0015]S21、所述第一服务器通过多播的方式按照全局顺序编号,顺序地向所述若干第二服务器传输所述若干数据的全部数据包;
[0016]S22、对于每一第二服务器,所述第二服务器根据所述全局顺序编号判断是否有缺失的数据包,若是则执行步骤S23,若否则执行步骤S3 ;
[0017]S23、对于有缺失数据包的第二服务器,设所述第二服务器缺失的数据包的全局顺序编号为a,若第二服务器在接收到全局顺序编号为a+b的数据包时仍未收到全局顺序编号为a的数据包,则向所述第一服务器请求全局顺序编号为a的数据包;
[0018]S24、所述第一服务器根据第二服务器的请求向第二服务器传输数据包。
[0019]为了提高数据传输的稳定性,所述编号为全局顺序编号,即任意两个数据包具有不同的全局顺序编号,而且利用所述全局顺序编号第二服务器可以分辨出第一服务器传输数据包的次序,方便查找缺失的数据包。例如,全局顺序编号分别为01、02、03、04的四个数据包被第一服务器传输出来,当第二服务器接收到全局顺序编号为01、03、04的数据包时,就可以判断出编号为02的数据包为缺失的数据包,本发明的全局顺序编号可以是连续的正整数,但并不局限于此,只要第二服务器能够利用全局顺序编号判断出缺失数据包的编号方式,均落入本发明所保护的范围。
[0020]第一服务器顺序地向第二服务器传输数据包,可以更方便地查找缺失的数据包,并提高数据传输的效率。例如全局顺序编号分别为99、98、…、01、00的100个数据包被第一服务器传输出来,当第二服务器判断缺少编号为98的数据包时,a为98,设a+b为01,当第二服务器在收到编号为01的数据包时仍未收到编号为98的数据包时,向第一服务器请求编号为98的数据包,可以看出由于第一服务器是顺序地传输数据包,因此全局顺序编号并不局限于连续的正整数。利用全局顺序编号以及顺序地传输数据,可以有效解决多播传输报文传输稳定性差,报文到达顺序不一致的问题。
[0021]其中第二服务器向第一服务器请求数据包的请求命令以及第一服务器向第二服务器传输请求的数据包均可以通过TCP协议以一对一的方式在第二服务器和第一服务器之间进行传输。
[0022]较佳地,步骤S24后包括:
[0023]S25、对于有缺失数据包的第二服务器,若第二服务器在接收到全局顺序编号为a+c的数据包时仍未收到全局顺序编号为a的数据包,则向所述第一服务器请求与全局顺序编号为a的数据包ID相同的全部数据包,其中全局顺序编号为a+b的数据包比全局顺序编号为a+c的数据包领先传输η个数据包,η大于500小于15000 ;
[0024]S26、所述第一服务器根据第二服务器的请求向第二服务器传输与全局顺序编号为a的数据包ID相同的全部数据包。
[0025]若第二服务器在接收到全局顺序编号为a+c的数据包时仍未收到全局顺序编号为a的数据包,则第二服务器不会再等待接收单独的数据包,而是向第一服务器请求与全局顺序编号为a的数据包ID相同的全部数据包,也就是重新请求包括全局顺序编号为a的数据包的数据。从而进一步的提高数据传输的稳定性。
[0026]较佳地,所述第一服务器为一缓存服务器,所述缓存服务器用于将一数据库的数据通过多播的方式向所述若干第二服务器传输,所述第二服务器为查询服务器。
[0027]本发明可以应用于大型旅游网站的服务器系统当中,例如携程网站的服务器系统。
[0028]较佳地,所述数据传输方法包括:
[0029]Stl
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1