一种实现跨机房数据传输的方法、装置和系统制造方法及图纸

技术编号:9796126 阅读:120 留言:0更新日期:2014-03-22 02:30
本发明专利技术公开了一种实现跨机房数据传输的方法、装置和系统。所述方法包括:将发送方机房的待发送数据放入发送缓存中;向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧。本发明专利技术的技术方案,由于发送方会根据接收方的能力进行数据传输,因此可以减少数据传输失败的概率,进而减少数据重传的次数,提高了数据传输的效率。

【技术实现步骤摘要】
一种实现跨机房数据传输的方法、装置和系统
本专利技术涉及网络通信
,具体涉及一种实现跨机房数据传输的方法和、装置和系统。
技术介绍
在如今的信息社会的背景下,各个互联网公司以其他大型企业几乎都会存储着大量的信息数据。当公司业务较广,数据存储分布在不同的地域时,不可避免的会需要进行跨机房的数据传输。而在跨机房数据传输时,面临的主要问题是:数据在跨机房的公网传输时,失败率较高,常常会丢失一定比例的数据,特别是将电信机房的数据传输到联通机房(反之亦然),这种跨运营供应商时的数据传输时,失败率会更高,而且传输速度更慢;现有的解决跨机房数据传输的方法是:将数据传输至别的机房,如果数据传输失败,则进行无限或有限次数的数据重传,当多次数据传输均告失败时,则放弃传输那条数据。现有的跨机房数据传输方法有如下不足:若数据传输失败是因为网络拥塞或者接收端处理能力限制,此时再进行大量的数据重传,可能会使得网络拥塞加剧或者导致接收端宕机,从而导致更多的数据传输失败。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种实现跨机房数据传输的方法、装置和系统。依据本专利技术的一个方面,提供了一种实现跨机房数据传输的方法,包括:将发送方机房的待发送数据放入发送缓存中;向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧。可选地,所述根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧包括:当所述接收缓存的状态信息表示接收缓存的负荷低于第一预设值时,获取发送缓存中的发往接收方机房的数据并进行发送;当所述接收缓存的状态信息表示接收缓存的负荷高于或等于第一预设值时,则将发送缓存中的发往接收方机房的数据进行延时发送。可选地,所述接收缓存的状态信息包括:接收缓存数量、接收缓存总容量和接收缓存的吞吐量。可选地,该方法进一步包括:当接收到接收方机房侧发送的接收确认消息时,从发送缓存中删除对应的数据。可选地,该方法进一步包括:当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息时,将发送缓存中的待发往接收方机房的数据进行延时发送,或者降低发送频率。可选地,所述将发送缓存中的待发往接收方机房的数据进行延时发送包括:所述发送缓存采用redis中排序集合实现,其中数据作为value,时间戳作为key存储到所述排序集合中,排序集合中的数据按照key值大小进行排序;当发送数据时,从排序集合中取出key值小于当前时间戳的数据进行发送;数据延时发送是在该数据的原key值上加上一个延时时间作为该数据的新key值。可选地,该方法进一步包括:获取包含各机房间传输速度的全局路由表;在所述向接收方机房侧发送准备接收数据的通知之前,先根据所述全局路由表判断发送方机房到接收方机房之间是否直接可达;如果直接可达,则执行所述向接收方机房侧发送准备接收数据的通知的步骤;如果不直接可达,则根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径,并根据该路径进行数据传输。可选地,该方法进一步包括:将获取的所述全局路由表存储在发送方机房中的一台或多台设备上;或者,将获取的所述全局路由表存储在发送方机房中的一台或多台设备上,且进行主从备份。可选地,该方法进一步包括:当发送方机房到接收方机房之间直接可达并通过该直达路径发送数据的过程中,当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息,则先根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径;如果路径存在,则根据该路径进行数据传输,如果路径不存在,则将发送缓存获中的发往接收方机房的数据进行延时发送,或者降低发送频率。可选地,所述根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径包括:优先选择中转节点少于第三预设值路径,其次选择传输耗时不高于第四预设值的路径。可选地,所述根据所述全局路由表判断发送方机房到接收方机房之间是否直接可达包括:根据全局路由表查看发送方机房到接收方机房的传输速度是否大于第五预设值,是则判断发送方机房到接收方机房之间可达,否则判断发送方机房到接收方机房之间不可达。可选地,所述获取包含各机房间传输速度的全局路由表包括:定期测试发送方机房到其他各机房的传输速度,保存测试结果,并将测试结果分别发送给其他各机房;接收其他各机房的测试结果,与所保存的测试结果进行整合,获得全局路由表。依据本专利技术的另一方面,提供了一种实现跨机房数据传输的装置,该装置包括:发送缓存单元,适于缓存发送方机房的待发送数据;发送数据处理单元,适于向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧。可选地,所述发送数据处理单元,适于当所述接收缓存的状态信息表示接收缓存的负荷低于第一预设值时,获取发送缓存单元中的发往接收方机房的数据并进行发送;以及适于当所述接收缓存的状态信息表示接收缓存的负荷高于或等于第一预设值时,则将发送缓存单元中的发往接收方机房的数据进行延时发送。可选地,所述发送数据处理单元接收的所述接收缓存的状态信息包括:接收缓存数量、接收缓存总容量和接收缓存的吞吐量。可选地,所述发送数据处理单元,进一步适于当接收到接收方机房侧发送的接收确认消息时,从发送缓存中删除对应的数据。可选地,所述发送数据处理单元,进一步适于当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息时,将发送缓存单元中的待发往接收方机房的数据进行延时发送,或者降低发送频率。可选地,所述发送缓存单元采用redis中排序集合实现;所述发送数据处理单元,进一步适于将数据作为value,时间戳作为key存储到所述排序集合中,排序集合中的数据按照key值大小进行排序,当发送数据时,从排序集合中取出key值小于当前时间戳的数据进行发送,当需要进行数据延时发送时,在该数据的原key值上加上一个延时时间作为该数据的新key值。可选地,该装置进一步包括:路由表获取单元,适于获取包含各机房间传输速度的全局路由表;所述发送数据处理单元,适于在向接收方机房侧发送准备接收数据的通知之前,先根据所述全局路由表判断发送方机房到接收方机房之间是否直接可达;如果直接可达,则执行所述向接收方机房侧发送准备接收数据的通知的步骤;如果不直接可达,则根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径,并根据该路径进行数据传输。可选地,路由表获取单元,适于将获取的所述全局路由表存储在发送方机房中的一台或多台设备上;或者,适于将获取的所述全局路由表存储在发送方机房中的一台或多台设备上,且进行主从备份。可选地,所述发送数据处理单元,进一步适于在发送方机房到接收方机房之间直接可达并通过该直达路径发送数据的过程中,当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息时,先根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径;如果路径存在,则根据该路径进行数据传输,如果路径不本文档来自技高网...
一种实现跨机房数据传输的方法、装置和系统

【技术保护点】
一种实现跨机房数据传输的方法,其中,包括:将发送方机房的待发送数据放入发送缓存中;向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧。

【技术特征摘要】
1.一种实现跨机房数据传输的方法,其中,包括:将发送方机房的待发送数据放入发送缓存中;向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧;该方法进一步包括:获取包含各机房间传输速度的全局路由表;在所述向接收方机房侧发送准备接收数据的通知之前,先根据所述全局路由表判断发送方机房到接收方机房之间是否直接可达;如果直接可达,则执行所述向接收方机房侧发送准备接收数据的通知的步骤;如果不直接可达,则根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径,并根据该路径进行数据传输。2.如权利要求1所述的方法,其中,所述根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧包括:当所述接收缓存的状态信息表示接收缓存的负荷低于第一预设值时,获取发送缓存中的发往接收方机房的数据并进行发送;当所述接收缓存的状态信息表示接收缓存的负荷高于或等于第一预设值时,则将发送缓存中的发往接收方机房的数据进行延时发送。3.如权利要求2所述的方法,其中,所述接收缓存的状态信息包括:接收缓存数量、接收缓存总容量和接收缓存的吞吐量。4.如权利要求1所述的方法,其中,该方法进一步包括:当接收到接收方机房侧发送的接收确认消息时,从发送缓存中删除对应的数据。5.如权利要求4所述的方法,其中,该方法进一步包括:当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息时,将发送缓存中的待发往接收方机房的数据进行延时发送,或者降低发送频率。6.如权利要求5所述的方法,其中,所述将发送缓存中的待发往接收方机房的数据进行延时发送包括:所述发送缓存采用redis中排序集合实现,其中数据作为value,时间戳作为key存储到所述排序集合中,排序集合中的数据按照key值大小进行排序;当发送数据时,从排序集合中取出key值小于当前时间戳的数据进行发送;数据延时发送是在该数据的原key值上加上一个延时时间作为该数据的新key值。7.如权利要求1所述的方法,其中,该方法进一步包括:将获取的所述全局路由表存储在发送方机房中的一台或多台设备上;或者,将获取的所述全局路由表存储在发送方机房中的一台或多台设备上,且进行主从备份。8.如权利要求1所述的方法,其中,该方法进一步包括:当发送方机房到接收方机房之间直接可达并通过直达路径发送数据的过程中,当超出第二预设值的已发往接收方机房侧的数据未接收到接收确认消息,则先根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径;如果路径存在,则根据该路径进行数据传输,如果路径不存在,则将发送缓存获中的发往接收方机房的数据进行延时发送,或者降低发送频率。9.如权利要求1所述的方法,其中,所述根据所述全局路由表选择一条通过其他机房中转能够将发送方机房的数据传输到接收方机房的路径包括:优先选择中转节点少于第三预设值路径,其次选择传输耗时不高于第四预设值的路径。10.如权利要求1所述的方法,其中,所述根据所述全局路由表判断发送方机房到接收方机房之间是否直接可达包括:根据全局路由表查看发送方机房到接收方机房的传输速度是否大于第五预设值,是则判断发送方机房到接收方机房之间可达,否则判断发送方机房到接收方机房之间不可达。11.如权利要求1所述的方法,其中,所述获取包含各机房间传输速度的全局路由表包括:定期测试发送方机房到其他各机房的传输速度,保存测试结果,并将测试结果分别发送给其他各机房;接收其他各机房的测试结果,与所保存的测试结果进行整合,获得全局路由表。12.一种实现跨机房数据传输的装置,其中,该装置包括:发送缓存单元,适于缓存发送方机房的待发送数据;发送数据处理单元,适于向接收方机房侧发送准备接收数据的通知,并接收接收方机房侧返回的接收缓存的状态信息;根据接收缓存的状态信息,将发送缓存中的数据发送到接收方机房侧;该装置进一步包括:路由表获取单元,适于获取包含各机...

【专利技术属性】
技术研发人员:徐锐波付赟
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1