CN112182095A - 多机房之间进行业务数据同步的方法及装置、设备和介质 - Google Patents
多机房之间进行业务数据同步的方法及装置、设备和介质 Download PDFInfo
- Publication number
- CN112182095A CN112182095A CN202010896795.4A CN202010896795A CN112182095A CN 112182095 A CN112182095 A CN 112182095A CN 202010896795 A CN202010896795 A CN 202010896795A CN 112182095 A CN112182095 A CN 112182095A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- synchronization
- redis
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种多机房之间进行业务数据同步的方法及装置、设备和介质,方法包括:业务服务以及同步服务;设置一数据同步框架,通过代码侵入每个服务器端,统一接管同步模式;若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;业务服务将序列化的数据发送至同步服务;同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中,支持不同机房间数据的多向同步。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种多机房之间进行业务数据同步的方法及装置、设备和介质。
背景技术
当存在多个机房之间的数据需要进行同步时,现有市面上的产品大都是针对某个库/表进行整个同步,细粒度很粗,无法按业务、按需对特定的数据进行同步。而且缺乏对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服务。
第二方面,本发明提供了一种多机房之间进行业务数据同步的装置,包括:业务服务以及同步服务;
侵入模块,设置一数据同步框架,通过代码侵入服务器端,统一接管同步模式;
序列化模块,若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
发送模块,业务服务将序列化的数据发送至同步服务;
同步模块,同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中。
进一步地,所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口。
进一步地,所述同步模块进一步具体为:同步服务将接收的序列化的数据进行数据反序列化为mysql client、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的一种多机房之间进行业务数据同步的方法及装置、设备和介质,实现数据的精细同步控制,同时支持不同机房间数据的多向同步。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为现有的数据同步的示意图;
图2为本发明数据同步的示意图;
图3为本发明实施例一中方法中的流程图;
图4为本发明实施例二中装置的结构示意图。
具体实施方式
本申请实施例通过提供一种多机房之间进行业务数据同步的方法及装置、设备和介质,解决了无法从业务上控制同步粒度,必须整个redis一起同步的问题;达到支持不同机房间数据的多向同步。
本申请实施例中的技术方案,总体思路如下:
设置数据同步框架,通过代码侵入server端统一接管同步的模式,对数据同步提供如下特性:
支持Elasticsearch、Rabbitmq、Redis、Mysql的数据同步,多写模式;其中数据的格式不一样,但都会序列化为json字符串,Server端接收后,能反序列化回来;
业务服务通过代码侵入控制同步的粒度:
client.insert(data1);//data1不会被同步
client.createSync().insert(data2);//data2被同步
如图2所示,当createSync产生的修改,被拦截到mysql changes/es changes/redis changes/mq changes的队列中(通过云端配置进行控制同步的位置),被同步处理器序列化,再通过数据发送器发送给同步服务,完成一次client端的同步处理。其中数据发送器是由服务监视器产生的,它决定了数据如何发送给同步服务,比如以消息队列的形式,发送给同步服务。
数据同步服务接受队列中的消息,并根据同步处理器中所对应的目标,将数据反序列化为mysql client/es client/redis client/mq client的操作,写入远端的server中,完成跨区的数据写入,即完成数据同步;以redis client为例,表示同步服务中创建的redis client实例,它会连接远程的redis server(即redis服务)。例如:json数据时,将json反序列化为client的操作,相当于调用client的方法,比如redis client的set方法。该方法,就把数据写到远程的redis server中了,完成数据的同步。
同理,在每个区域部署对应的同步服务,就可以实现多区域的数据多写。
实施例一
如图3所示,本实施例提供一种多机房之间进行业务数据同步的方法,包括:业务服务以及同步服务;
步骤1、设置一数据同步框架,通过代码侵入每个服务器端,统一接管同步模式,所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口;
步骤2、若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
步骤3、业务服务将序列化的数据发送至同步服务;
步骤4、同步服务将接收的序列化的数据进行数据反序列化为mysql client、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
如图4所示,在本实施例中提供了一种多机房之间进行业务数据同步的装置,包括:业务服务以及同步服务;
侵入模块,设置一数据同步框架,通过代码侵入服务器端,统一接管同步模式,所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口;
序列化模块,若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
发送模块,业务服务将序列化的数据发送至同步服务;
同步模块,同步服务将接收的序列化的数据进行数据反序列化为mysql client、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:本申请实施例提供的方法、装置、***、设备及介质,
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (8)
1.一种多机房之间进行业务数据同步的方法,其特征在于:包括:业务服务以及同步服务;
步骤1、设置一数据同步框架,通过代码侵入每个服务器端,统一接管同步模式;
步骤2、若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
步骤3、业务服务将序列化的数据发送至同步服务;
步骤4、同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中。
2.根据权利要求1所述的一种多机房之间进行业务数据同步的方法,其特征在于:所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口。
3.根据权利要求2所述的一种多机房之间进行业务数据同步的方法,其特征在于:所述步骤4进一步具体为:同步服务将接收的序列化的数据进行数据反序列化为mysql client、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
4.一种多机房之间进行业务数据同步的装置,其特征在于:包括:业务服务以及同步服务;
侵入模块,设置一数据同步框架,通过代码侵入服务器端,统一接管同步模式;
序列化模块,若数据产生修改,则被拦截至业务服务的队列中,将其进行序列化;
发送模块,业务服务将序列化的数据发送至同步服务;
同步模块,同步服务将接收的序列化的数据进行数据反序列化操作,写入远端的服务器中。
5.根据权利要求4所述的一种多机房之间进行业务数据同步的方法,其特征在于:所述数据同步框架中封装了Elasticsearch组件、Rabbitmq组件、Redis组件以及Mysql组件,用于提供Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务,并提供与原sdk一致的接口。
6.根据权利要求5所述的一种多机房之间进行业务数据同步的方法,其特征在于:所述同步模块进一步具体为:同步服务将接收的序列化的数据进行数据反序列化为mysqlclient、Elasticsearchclient、redis client或mq client的操作,写入远端的服务器中对应的Elasticsearch服务、Rabbitmq服务、Redis服务以及Mysql服务。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010896795.4A CN112182095A (zh) | 2020-08-31 | 2020-08-31 | 多机房之间进行业务数据同步的方法及装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010896795.4A CN112182095A (zh) | 2020-08-31 | 2020-08-31 | 多机房之间进行业务数据同步的方法及装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112182095A true CN112182095A (zh) | 2021-01-05 |
Family
ID=73924005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010896795.4A Pending CN112182095A (zh) | 2020-08-31 | 2020-08-31 | 多机房之间进行业务数据同步的方法及装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182095A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256002A (zh) * | 2017-12-31 | 2018-07-06 | 广东欧珀移动通信有限公司 | 跨机房数据同步方法、装置、***以及服务器 |
WO2019061720A1 (zh) * | 2017-09-29 | 2019-04-04 | 网宿科技股份有限公司 | 一种数据同步的方法和*** |
CN110309231A (zh) * | 2019-07-12 | 2019-10-08 | 焦点科技股份有限公司 | 一种跨机房的数据同步方法及*** |
CN110597910A (zh) * | 2019-09-12 | 2019-12-20 | 聚好看科技股份有限公司 | 一种异地数据同步方法、装置和*** |
CN110750594A (zh) * | 2019-09-30 | 2020-02-04 | 上海视云网络科技有限公司 | 一种基于mysql增量日志实时跨网络数据库同步方法 |
-
2020
- 2020-08-31 CN CN202010896795.4A patent/CN112182095A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019061720A1 (zh) * | 2017-09-29 | 2019-04-04 | 网宿科技股份有限公司 | 一种数据同步的方法和*** |
CN108256002A (zh) * | 2017-12-31 | 2018-07-06 | 广东欧珀移动通信有限公司 | 跨机房数据同步方法、装置、***以及服务器 |
CN110309231A (zh) * | 2019-07-12 | 2019-10-08 | 焦点科技股份有限公司 | 一种跨机房的数据同步方法及*** |
CN110597910A (zh) * | 2019-09-12 | 2019-12-20 | 聚好看科技股份有限公司 | 一种异地数据同步方法、装置和*** |
CN110750594A (zh) * | 2019-09-30 | 2020-02-04 | 上海视云网络科技有限公司 | 一种基于mysql增量日志实时跨网络数据库同步方法 |
Non-Patent Citations (2)
Title |
---|
李宁: ""一种异构关系型数据库间的数据同步方案"", 《福建电脑》 * |
范辉等: "《Python大数据基础与实战》", 31 July 2019, 西安电子科技大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506412B (zh) | 基于Airflow的分布式异步任务构建、调度***及方法 | |
CN109951331B (zh) | 用于发送信息的方法、装置和计算集群 | |
CN110971655B (zh) | 离线客户端重放和同步 | |
CN111614729B (zh) | 对kubernetes容器集群的控制方法、装置及电子设备 | |
US10069942B2 (en) | Method and apparatus for changing configurations | |
CN108932157B (zh) | 分布式处理任务的方法、***、电子设备和可读介质 | |
CN112867988A (zh) | 由移动设备实现合规设置以遵循配置场景 | |
CN113742031A (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
US11436066B2 (en) | System for offline object based storage and mocking of rest responses | |
CN109245908B (zh) | 一种主从集群切换的方法和装置 | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN111858045A (zh) | 一种多任务gpu资源调度方法、装置、设备及可读介质 | |
US20200293220A1 (en) | Log processing method, and related device and system | |
US11223522B1 (en) | Context-based intelligent re-initiation of microservices | |
CN112114939A (zh) | 一种分布式***部署设备和方法 | |
CN111064626A (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
WO2018082079A1 (zh) | 数据对接动态管理方法及装置 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
CN110427260B (zh) | 主机作业调度方法、装置及*** | |
CN112182095A (zh) | 多机房之间进行业务数据同步的方法及装置、设备和介质 | |
CN110597600A (zh) | 修改分布式***应用配置参数的方法及分布式*** | |
Osrael et al. | Axis2-based replication middleware forweb services | |
CN115454666A (zh) | 消息队列集群间的数据同步方法和装置 | |
US20180063242A1 (en) | Method and apparatus for operating infrastructure layer in cloud computing architecture | |
CN110661857B (zh) | 一种数据同步方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |