[发明专利]多机房之间进行业务数据同步的方法及装置、设备和介质在审
申请号: | 202010896795.4 | 申请日: | 2020-08-31 |
公开(公告)号: | CN112182095A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 左丹 | 申请(专利权)人: | 福州智象信息技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/25;G06F9/54 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 林燕 |
地址: | 350000 福建省福州市马尾区*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 机房 之间 进行 业务 数据 同步 方法 装置 设备 介质 | ||
本发明提供一种多机房之间进行业务数据同步的方法及装置、设备和介质,方法包括:业务服务以及同步服务;设置一数据同步框架,通过代码侵入每个服务器端,统一接管同步模式;若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;业务服务将序列化的数据发送至同步服务;同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中,支持不同机房间数据的多向同步。
技术领域
本发明涉及计算机技术领域,特别涉及一种多机房之间进行业务数据同步的方法及装置、设备和介质。
背景技术
当存在多个机房之间的数据需要进行同步时,现有市面上的产品大都是针对某个库/表进行整个同步,细粒度很粗,无法按业务、按需对特定的数据进行同步。而且缺乏对redis,es等数据进行多向数据同步的整体解决方案。
以redis为例,目前主要通过节点之间进行主从配置实现同步,允许存在一个写节点,多个从节点,但如果是跨机房,多区域数据的多写同步,redis本身的主从配置无法实现,目前基本都采用的是基于主从协议的数据复制,采用MQ等中间件来实现跨机房的传输来实现,以redis的同步工具XPipe为例,其流程如下:
如图1所示,Slave keeper(伪装为redis slave)收集redis日志,然后将日志交由proxy进行压缩,同步。同时proxy也负责接受来自对方的数据,回写至Masterkeeper(伪装为redis master)。
XPipe无法支持多区域(超过2个机房)下的双写,同时采用了主从协议下的日志去更新,所以也无法从业务上控制同步粒度,必须整个redis一起同步。
发明内容
本发明要解决的技术问题,在于提供一种多机房之间进行业务数据同步的方法及装置、设备和介质,支持不同机房间数据的多向同步。
第一方面,本发明提供了一种多机房之间进行业务数据同步的方法,包括:业务服务以及同步服务;
步骤1、设置一数据同步框架,通过代码侵入每个服务器端,统一接管同步模式;
步骤2、若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
步骤3、业务服务将序列化的数据发送至同步服务;
步骤4、同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中。
进一步地,所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口。
进一步地,所述步骤4进一步具体为:同步服务将接收的序列化的数据进行数据反序列化为mysql client、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
第二方面,本发明提供了一种多机房之间进行业务数据同步的装置,包括:业务服务以及同步服务;
侵入模块,设置一数据同步框架,通过代码侵入服务器端,统一接管同步模式;
序列化模块,若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
发送模块,业务服务将序列化的数据发送至同步服务;
同步模块,同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州智象信息技术有限公司,未经福州智象信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010896795.4/2.html,转载请声明来源钻瓜专利网。