一种集群间跨机房同步的方法和装置制造方法及图纸

技术编号:18350069 阅读:34 留言:0更新日期:2018-07-01 23:02
本发明专利技术公开了一种集群间跨机房同步的方法和装置,以解决目前集群跨机房同步时延较长且同步可靠性较差的问题。该方法为,位于第一机房的第一同步系统在实时同步状态下,实时向位于第二机房的第二同步系统发送增量数据;在发送所述增量数据失败时,所述第一同步系统进入延时同步状态,以及将所述增量数据写入到增量同步队列中。这样能够基于同步状态实现跨机房同步,实时同步状态下使得同步时延较小,延时同步状态下保证数据同步的可靠性,使同步数据达到最终一致。

【技术实现步骤摘要】
一种集群间跨机房同步的方法和装置
本专利技术涉及计算机
,尤其涉及一种集群间跨机房同步的方法和装置。
技术介绍
目前针对一些大型网站业务,在系统可用性上往往会考虑数据库的跨机房镜像复制,容灾备份等,在发生不可抗力因素导致当地数据不可用时,能够快速的通过异步的数据库备份或者镜像提供系统访问。目前,对于增量数据的跨机房同步已经有了一些实现方式。主要有以下三种:第一种,同步数据传输。本地站点处理完数据更改请求后,将请求转发远程站点进行处理,并等待远程站点处理结果。这种同步方案,延迟长,容易造成阻塞,甚至服务假死,实际中很少使用。第二种,异步数据传输。本地站点处理完数据更改请求后,将请求转发远程站点进行处理,不等待远程站点处理结果,这种同步方案,由于网络不稳定等原因,容易造成同步失败。第三种,队列传输。本地站点处理完数据更改请求后,并为发生变更的数据创建用于唯一定位的索引键值,并将所述索引键值添加到一个FIFO队列,本地站点根据所述FIFO队列中的索引键值,找到对应的发生变更的数据内容,向各远程站点发出同步指令,如同步失败,则将索引重新添加到队列的末尾,这种同步方案,因为所有同步请求都写入FIFO队列再处理,增加了中间过程,导致同步时延增长。
技术实现思路
本专利技术实施例提供一种集群间跨机房同步的方法和装置,以解决目前集群跨机房同步时延较长且同步可靠性较差的问题。本专利技术实施例提供的具体技术方案如下:第一方面,本专利技术实施例提供一种集群间跨机房同步的方法,包括:位于第一机房的第一同步系统在实时同步状态下,实时向位于第二机房的第二同步系统发送增量数据;在发送所述增量数据失败时,所述第一同步系统进入延时同步状态,以及将所述增量数据写入到增量同步队列中。这样能够基于同步状态实现跨机房同步,实时同步状态下使得同步时延较小,延时同步状态下保证数据同步的可靠性,使同步数据达到最终一致。可选的,所述方法还包括:所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统;所述第一同步系统将所述增量数据写入到增量同步队列中,包括:所述第一同步系统确定所述增量同步队列所处的状态;所述第一同步系统基于所述增量同步队列所处的状态,将所述增量数据写入到所述增量同步队列中;所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统,包括:所述第一同步系统确定所述增量同步队列所处的状态;所述第一同步系统基于所述增量同步队列所处的状态,从所述增量同步队列中读取数据同步到所述第二同步系统。这种设计中,在实现增量同步时,基于增量同步队列的状态,从增量同步队列中读取数据,并将所述增量数据写入到增量同步队列中,能够自动实现增量数据的同步过程,保证同步数据的一致性。可选的,所述增量同步队列包括普通队列和后备队列;所述第一同步系统确定所述增量同步队列所处的状态,包括:若所述后备队列中没有存储任何数据且所述第一机房与所述第二机房间心跳失败次数小于预设阈值时,确定所述增量同步队列所处的状态为正常状态;若所述第一机房与所述第二机房间心跳失败次数达到所述预设阈值时,确定所述增量同步队列所处的状态为后备状态;所述第一同步系统基于所述增量同步队列所处的状态,将所述增量数据写入到所述增量同步队列中,包括:在所述增量同步队列所处的状态为正常状态时,将所述增量数据写入到所述普通队列中;在所述增量同步队列所处的状态为后备状态时,将所述增量数据写入到所述后备队列中。这种设计中,通过多层队列实现增量数据的同步过程,在增量同步队列为正常状态时,将增量数据写入普通队列,在增量同步队列为后备状态时,将增量数据写入后备队列,从而基于增量同步队列所处的状态,进行增量数据的同步,在网络故障时,也能实现数据的同步,防止数据丢失,保证同步数据的可靠性和一致性。可选的,所述增量同步队列还包括前沿队列;所述第一同步系统确定所述增量同步队列所处的状态,还包括:若从所述增量同步队列中读取数据同步到所述第二同步系统的操作失败时,将同步的所述增量数据写入到所述第一机房的前沿队列中,确定所述增量同步队列所处的状态为前沿状态;若从所述前沿队列中获取数据发送到所述第二同步系统的操作成功且所述前沿队列中无数据时,确定所述增量同步队列所处的状态为非前沿状态;所述第一同步系统基于所述增量同步队列所处的状态,从所述增量同步队列中读取数据同步到所述第二同步系统,包括:在所述增量同步队列所处的状态为前沿状态时,从所述前沿队列中读取数据同步到所述第二同步系统;在所述增量同步队列所处的状态为非前沿状态时,先从所述普通队列中读取数据同步到所述第二同步系统,在所述普通队列中无数据时,再从所述后备队列中读取数据同步到所述第二同步系统。这种设计中,在增量同步队列中的数据同步失败时,将同步失败的数据写入到前沿队列,使前沿队列中保存最早需要同步的数据,从而在所述增量同步队列的状态为前沿状态时,先从前沿队列中读取数据,使前沿队列的同步唯一,保证在增量同步队列中取出数据时,能够确保数据的顺序性。可选的,在所述增量同步队列所处的状态为后备状态时,所述方法还包括:从所述后备队列中读取设定数量的数据执行合并操作,并写入所述普通队列;和/或,对所述普通队列中设定数量的数据执行合并操作。这种设计中,通过数据的合并操作对大量的数据的进行有效压缩,提高数据同步效率。可选的,所述第一同步系统将所述增量数据写入到增量同步队列中,包括:所述第一同步系统将所述增量数据对应的更改动作和对应的索引键值和数据键值写入到所述增量同步队列中。这种设计中,增量同步队列中保存数据更改时对应的更改动作,以及更改对应的索引键值和数据键值,由于数据更改时的增量数据对应的数据量较小,用这种方式使同步的数据量大大减小。可选的,所述方法还包括:所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统;在所述增量同步队列中无数据时,所述第一同步系统进入实时同步状态。可选的,所述方法还包括:从所述增量同步队列中读取数据并确定所述读取的数据对应的顺序编号,按照顺序编号的排列顺序依次同步读取的数据到所述第二同步系统。可选的,所述第一同步系统向所述第二同步系统发送增量数据之前,所述方法还包括:所述第一同步系统接收所述第二同步系统发送的全量扫描同步请求和索引参数;所述第一同步系统基于所述全量扫描同步请求和所述索引参数,创建所述索引参数对应的索引键值,并获取所述索引键值对应的数据同步至所述第二同步系统;所述第一同步系统在接收到全量同步队列的处理请求后,从全量同步队列中获取更改数据键值,并基于所述更改数据键值,获取全量扫描过程中发生更改的更改数据,并将所述更改数据同步至所述第二同步系统。这种设计中,在实现增量数据同步之前,实现全量同步,使第二同步系统在第一同步系统已经有初始化数据情形下,可以在不停机时实现全量同步,保证同步双方数据一致。第二方面,本专利技术实施例提供一种集群间跨机房同步的装置,应用于位于第一机房的第一同步系统中,包括:收发单元,用于在第一同步系统在实时同步状态下,实时向位于第二机房的第二同步系统发送增量数据;处理单元,用于在发送所述增量数据失败时,使所述第一同步系统进入延时同步状态,以及将所述增量数据写入到增量同步队列中。可选的,所述处理单元还用于:从所述增量本文档来自技高网...
一种集群间跨机房同步的方法和装置

【技术保护点】
1.一种集群间跨机房同步的方法,其特征在于,包括:位于第一机房的第一同步系统在实时同步状态下,实时向位于第二机房的第二同步系统发送增量数据;在发送所述增量数据失败时,所述第一同步系统进入延时同步状态,以及将所述增量数据写入到增量同步队列中。

【技术特征摘要】
1.一种集群间跨机房同步的方法,其特征在于,包括:位于第一机房的第一同步系统在实时同步状态下,实时向位于第二机房的第二同步系统发送增量数据;在发送所述增量数据失败时,所述第一同步系统进入延时同步状态,以及将所述增量数据写入到增量同步队列中。2.如权利要求1所述的方法,其特征在于,所述方法还包括:所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统;所述第一同步系统将所述增量数据写入到增量同步队列中,包括:所述第一同步系统确定所述增量同步队列所处的状态;所述第一同步系统基于所述增量同步队列所处的状态,将所述增量数据写入到所述增量同步队列中;所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统,包括:所述第一同步系统确定所述增量同步队列所处的状态;所述第一同步系统基于所述增量同步队列所处的状态,从所述增量同步队列中读取数据同步到所述第二同步系统。3.如权利要求2所述的方法,其特征在于,所述增量同步队列包括普通队列和后备队列;所述第一同步系统确定所述增量同步队列所处的状态,包括:若所述后备队列中没有存储任何数据且所述第一机房与所述第二机房间心跳失败次数小于预设阈值时,确定所述增量同步队列所处的状态为正常状态;若所述第一机房与所述第二机房间心跳失败次数达到所述预设阈值时,确定所述增量同步队列所处的状态为后备状态;所述第一同步系统基于所述增量同步队列所处的状态,将所述增量数据写入到所述增量同步队列中,包括:在所述增量同步队列所处的状态为正常状态时,将所述增量数据写入到所述普通队列中;在所述增量同步队列所处的状态为后备状态时,将所述增量数据写入到所述后备队列中。4.如权利要求3所述的方法,其特征在于,所述增量同步队列还包括前沿队列;所述第一同步系统确定所述增量同步队列所处的状态,还包括:若从所述增量同步队列中读取数据发送到所述第二同步系统的操作失败时,将同步的所述增量数据写入到所述第一机房的前沿队列中,确定所述增量同步队列所处的状态为前沿状态;若从所述前沿队列中获取数据发送到所述第二同步系统的操作成功且所述前沿队列中无数据时,确定所述增量同步队列所处的状态为非前沿状态;所述第一同步系统基于所述增量同步队列所处的状态,从所述增量同步队列中读取数据同步到所述第二同步系统,包括:在所述增量同步队列所处的状态为前沿状态时,从所述前沿队列中读取数据同步到所述第二同步系统;在所述增量同步队列所处的状态为非前沿状态时,先从所述普通队列中读取数据同步到所述第二同步系统,在所述普通队列中无数据时,再从所述后备队列中读取数据同步到所述第二同步系统。5.如权利要求3或4所述的方法,其特征在于,在所述增量同步队列所处的状态为后备状态时,所述方法还包括:从所述后备队列中读取设定数量的数据执行合并操作,并写入所述普通队列;和/或,对所述普通队列中设定数量的数据执行合并操作。6.如权利要求1所述的方法,其特征在于,所述第一同步系统将所述增量数据写入到增量同步队列中,包括:所述第一同步系统将所述增量数据对应的更改动作和对应的索引键值和数据键值写入到所述增量同步队列中。7.如权利要求1所述的方法,其特征在于,所述方法还包括:所述第一同步系统从所述增量同步队列中读取数据同步到所述第二同步系统;在所述增量同步队列中无数据时,所述第一同步系统进入实时同步状态。8.如权利要求1所述的方法,其特征在于,所述方法还包括:从所述增量同步队列中读取数据并确定所述读取的数据对应的顺序编号,按照顺序编号的排列顺序依次同步读取的数据到所述第二同步系统。9.如权利要求1-8任一项所述的方法,其特征在于,所述第一同步系统向所述第二同步系统发送增量数据之前,所述方法还包括:所述第一同步系统接收所述第二同步系统发送的全量扫描同步请求和索引参数;所述第一同步系统基于所述全量扫描同步请求和所述索引参数,创建所述索引参数对应的索引键值,并获取所述索引键值对应的数据同步至所述第二同步系统;所述第一同步系统在接收到全量同步队列的处理请求后,从全量同步队列中获取更改数据键值,并基于所述更改数据键值,获取全量扫描过程中发生更改的更...

【专利技术属性】
技术研发人员:张宏涛
申请(专利权)人:深圳市优朋普乐传媒发展有限公司
类型:发明
国别省市:广东,44

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

1