CN107465767B - 一种数据同步的方法和系统 - Google Patents

一种数据同步的方法和系统 Download PDF

Info

Publication number
CN107465767B
CN107465767B CN201710911767.3A CN201710911767A CN107465767B CN 107465767 B CN107465767 B CN 107465767B CN 201710911767 A CN201710911767 A CN 201710911767A CN 107465767 B CN107465767 B CN 107465767B
Authority
CN
China
Prior art keywords
machine room
target
data change
service
terminal
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.)
Active
Application number
CN201710911767.3A
Other languages
English (en)
Other versions
CN107465767A (zh
Inventor
梁世平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201710911767.3A priority Critical patent/CN107465767B/zh
Priority to PCT/CN2017/110955 priority patent/WO2019061720A1/zh
Priority to US15/777,575 priority patent/US11172023B2/en
Priority to EP17879651.2A priority patent/EP3490224B1/en
Publication of CN107465767A publication Critical patent/CN107465767A/zh
Application granted granted Critical
Publication of CN107465767B publication Critical patent/CN107465767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

本发明公开了一种数据同步的方法和系统,属于数据同步技术领域。所述方法包括:目标终端获取本地预先存储的目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求,所述目标机房执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息,所述目标机房向所述目标机房的关联机房发送所述数据变更消息,所述关联机房根据接收到的所述数据变更消息进行数据同步。采用本发明,可以保证机房和关联机房双活的可行性,并提高了跨机房架构的机房处理资源的利用率。

Description

一种数据同步的方法和系统
技术领域
本发明涉及数据同步技术领域,特别涉及一种数据同步的方法和系统。
背景技术
随着互联网技术的不断发展,网络业务的数据量激增,传统的单体式服务器在大量的场景下面临着运维困难、效率低下、可靠性低和扩展困难等诸多问题。越来越多公司对服务器进行了功能模块化、分布式的微服务架构演进,甚至为了更高的服务可靠性采用了跨机房的集群式服务架构。
目前跨机房架构多采用为主备机房的部署方式对外提供服务,在正常工作时,主机房对外提供服务,备机房处于待机状态,主机房周期性将业务数据同步至备机房。当主机房出现故障,无法继续对外提供服务后,备机房则进入运行状态,以继续提供相关服务。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
备机房仅在与主机房进行数据同步后,才能够对外提供服务,这样,即使备机房本身具备独自对外提供服务的能力,也不会在主机房正常工作时独自对外提供服务,故而,跨机房架构的机房处理资源的利用率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据同步的方法和系统。所述技术方案如下:
第一方面,提供了一种数据同步的方法,所述方法包括:
目标终端获取本地预先存储的目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求;
所述目标机房执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;
所述目标机房向所述目标机房的关联机房发送所述数据变更消息;
所述关联机房根据接收到的所述数据变更消息进行数据同步。
可选的,所述目标终端获取目标机房的服务域名之前,还包括:
目标终端向负载调度集群发送域名获取请求,所述域名获取请求中携带有所述目标终端的终端标识;
所述负载调度集群在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群根据所述终端标识和所述健康VIP数目确定目标VIP,并向所述目标终端发送所述目标VIP对应的目标机房的服务域名;
所述目标终端接收并存储所述负载调度集群发送的所述目标机房的服务域名。
可选的,所述通过所述服务域名向目标机房发送业务请求之后,还包括:
目标终端如果检测到所述业务请求发送失败,则向所述负载调度集群发送携带有所述目标终端的终端标识的域名获取请求;
所述负载调度集群在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群根据所述终端标识和所述健康VIP数目确定新VIP,并向所述目标终端发送所述新VIP对应的新机房的服务域名;
所述目标终端接收并存储所述负载调度集群发送的所述新机房的服务域名。
可选的,所述目标机房执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息,包括:
所述目标机房调用业务处理线程开始处理所述业务请求,并监听是否存在数据库操作;
如果不存在数据库操作,所述目标机房则向所述目标终端反馈业务处理结果,如果存在数据库操作,所述目标机房则判断所述数据库操作是否涉及数据变更。
可选的,如果不涉及数据变更,所述目标机房则在所述第一数据库中进行数据库操作,基于所述数据库操作的结果继续处理所述业务请求,向所述目标终端反馈业务处理结果;
可选的,如果涉及数据变更,所述目标机房则在所述第一数据库中进行数据变更操作,基于数据变更结果继续处理所述业务请求,向所述目标终端反馈业务处理结果,并根据所述数据变更操作生成数据变更消息,将所述数据变更消息存储在预设的消息队列中。
可选的,所述关联机房根据接收到的所述数据变更消息进行数据同步,包括:
所述关联机房接收所述目标机房发送的数据变更消息,确定所述数据变更消息对应的目标终端的终端标识;
所述关联机房根据所述终端标识,通过一致性哈希算法,确定对应所述终端标识的目标数据变更线程;
所述关联机房调用所述目标数据变更线程,基于所述数据变更消息,在第二数据库中进行数据同步。
第二方面,提供了一种数据同步的系统,所述系统包括目标终端、目标机房和所述目标机房的关联机房,其中:
所述目标终端,用于获取本地预先存储的所述目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求;
所述目标机房,用于执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;
所述目标机房,还用于向所述关联机房发送所述数据变更消息;
所述关联机房,用于根据接收到的所述数据变更消息进行数据同步。
可选的,所述系统还包括负载调度集群,其中:
所述目标终端,还用于向所述负载调度集群发送域名获取请求,所述域名获取请求中携带有所述目标终端的终端标识;
所述负载调度集群,用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目确定目标VIP,并向所述目标终端发送所述目标VIP对应的目标机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述目标机房的服务域名。
可选的,所述目标终端,还用于如果检测到所述业务请求发送失败,则向所述负载调度集群发送携带有所述目标终端的终端标识的域名获取请求。
可选的,所述负载调度集群,还用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目确定新VIP,并向所述目标终端发送所述新VIP对应的新机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述新机房的服务域名。
可选的,所述目标机房,具体用于:
调用业务处理线程开始处理所述业务请求,并监听是否存在数据库操作;
如果不存在数据库操作,则向所述目标终端反馈业务处理结果,如果存在数据库操作,则判断所述数据库操作是否涉及数据变更。
可选的,如果不涉及数据变更,则在所述第一数据库中进行数据库操作,基于所述数据库操作的结果继续处理所述业务请求,向所述目标终端反馈业务处理结果;
可选的,如果涉及数据变更,则在所述第一数据库中进行数据变更操作,基于数据变更结果继续处理所述业务请求,向所述目标终端反馈业务处理结果,并根据所述数据变更操作生成数据变更消息,将所述数据变更消息存储在预设的消息队列中。
可选的,所述关联机房,具体用于:
接收所述目标机房发送的数据变更消息,确定所述数据变更消息对应的目标终端的终端标识;
根据所述终端标识,通过一致性哈希算法,确定对应所述终端标识的目标数据变更线程;
调用所述目标数据变更线程,基于所述数据变更消息,在第二数据库中进行数据同步。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,目标终端获取本地预先存储的目标机房的服务域名,通过服务域名向目标机房发送业务请求;目标机房执行业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;目标机房向目标机房的关联机房发送数据变更消息;关联机房根据接收到的数据变更消息进行数据同步。这样,当某一机房的数据库内发生了数据变更后,可以快速生成相应的数据变更消息,以使关联机房的数据库可以基于数据变更消息及时地进行数据同步,从而保证了机房和关联机房双活的可行性,提高了跨机房架构的机房处理资源的利用率。而且,关联机房的数据库可以基于数据变更消息及时地进行数据同步,能够使同一终端标识的数据在同一线程进行处理,同一终端的数据处理顺序按终端请求数据的顺序进行操作,避免数据乱序操作导致的业务行为异常。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据同步系统的具体框架示意图;
图2是本发明实施例提供的一种数据同步的方法流程图;
图3是本发明实施例提供的一种确定服务域名的处理示意图;
图4是本发明实施例提供的一种数据同步的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据同步的方法,该方法可以由用户终端、负载调度集群和多个机房共同实现,其中,负载调度集群和多个机房属于网络业务的服务端,负载调度集群可以由部署在多个机房内的网络设备组成,用于管理多个机房的业务运行,如检测每个机房的服务域名对应的VIP(虚拟网络协议地址,Virtual IP Address)是否存活,或者在多个机房间分配不同终端发送的业务请求等,机房可以由多个功能组件构成,主要包括管理组件(可以采用Keepalived软件,主要用于检测机房内各功能组件的运行状态和对外服务VIP的绑定)、负载均衡组件,请求处理组件,业务执行组件,数据库以及数据同步组件等,每个功能组件可以由多个服务器共同组成,每个服务器可以用于实现网络业务的部分或者全部功能;每个机房至少存在一个关联机房,具备的功能和支持的业务完全相同,机房与其关联机房可以同时对外提供相同的网络业务,当某个机房出现故障时,可以将该机房内的网络业务转移至其关联机房内继续执行。具体框架可如图1所示。上述功能组件中的服务器可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的数据同步的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,目标终端获取本地预先存储的目标机房的服务域名,通过服务域名向目标机房发送业务请求。
在实施中,当用户想要通过终端(如目标终端)实现某项网络业务时,可以通过目标终端向网络业务的提供方发送相应的业务请求。具体的,目标终端可以先获取本地预先存储的支持相应业务的机房(即目标机房)的服务域名,然后通过该服务域名,搭建与目标机房的通信链路,并通过建立好的通信链路向目标机房发送相应的业务请求。当然,在部分情况下,目标终端和目标机房间的通信链路已预先搭建完成,故而此处仅需进行业务请求的传输处理。
可选的,在步骤201前,终端可以从负载调度集群处获取目标机房的服务域名,相应的处理可以如下:目标终端向负载调度集群发送域名获取请求,域名获取请求中携带有目标终端的终端标识;负载调度集群在所有机房对外服务的VIP中,确定健康VIP数目;负载调度集群根据终端标识和健康VIP数目,例如通过一致性哈希算法确定目标VIP,并向目标终端发送目标VIP对应的目标机房的服务域名;目标终端接收并存储负载调度集群发送的目标机房的服务域名。
在实施中,目标终端如果之前未曾向目标机房发送过任意业务请求,则可以在本次发送业务请求前,先向网络业务提供方的负载调度集群发送携带有目标终端的终端标识的域名获取请求,以获取提供相关业务的机房的服务域名。负载调度集群可以接收到目标终端发送的域名获取请求,并获取其中携带的目标终端的终端标识。之后,负载调度集群可以检测各个机房对外服务VIP的运行状况,在所有机房对外服务的VIP中,确定出健康VIP数目。进一步的,负载调度集群可以根据目标终端的终端标识和确定出的健康VIP数目,例如通过一致性哈希算法确定出目标VIP。此处给出简单例子以理解一致性哈希算法,例如健康VIP数目为10,则可以基于10个健康VIP搭建哈希环,每个健康VIP为哈希环上的一个节点,可以任意设定终端标识和VIP对应规则,如终端标识尾数为1的终端对应VIP1,尾数为2的终端对应VIP2,以此类推,这样,则可以确定出目标终端对应的目标VIP。当然,上述说明仅用于帮助理解,并不限定一致性哈希算法的具体处理。之后,负载调度集群可以向目标终端发送目标VIP对应的目标机房的服务域名。目标终端在接收到上述服务域名后,可以将服务域名存储在本地。
可选的,如果业务请求发送失败,终端则可以从负载调度集群处获取新机房的服务域名,相应的处理可以如下:目标终端如果检测到业务请求发送失败,则向负载调度集群发送携带有目标终端的终端标识的域名获取请求;负载调度集群在所有机房对外服务的VIP中,确定健康VIP数目;负载调度集群根据终端标识和健康VIP数目,例如通过一致性哈希算法确定新VIP,并向目标终端发送新VIP对应的新机房的服务域名;目标终端接收并存储负载调度集群发送的新机房的服务域名。
在实施中,目标终端在向目标机房发送业务请求后,可以检测业务请求是否发送成功。此处,检测的方式多种多样,可以视不同的通信机制而定,例如,通信机制规定机房在接收到终端发送的业务请求,需反馈接收确认消息,那么,目标终端在向目标机房发送业务请求后,如果在预设时长内未接收到目标机房反馈的接收确认消息,则可以判定业务请求发送失败。进而可以认为目标终端内所存储的服务域名运行异常,目标终端可以重新从负载调度集群处获取服务域名。具体的,目标终端可以向负载调度集群发送携带有目标终端的终端标识的域名获取请求,负载调度集群接收到该域名获取请求后,可以获取上述终端标识。之后,负载调度集群可以检测各个机房对外服务VIP的运行状况,在所有机房对外服务的VIP中,确定出健康VIP数目。进一步的,负载调度集群可以根据目标终端的终端标识和确定出的健康VIP数目,例如通过一致性哈希算法确定出新VIP。进而,负载调度集群可以向目标终端发送新VIP对应的新机房的服务域名。目标终端在接收到上述服务域名后,可以将服务域名存储在本地,并删除本地预先存储的目标机房的服务域名。
上述关于负载调度集群确定目标机房的服务域名的处理可以参考图3。
步骤202,目标机房执行业务请求对应的业务操作,并更新第一数据库,生成数据变更消息。
其中,第一数据库为目标机房用于记录业务数据的数据库。
在实施中,在目标终端向目标机房发送业务请求后,目标机房可以接收到相应的业务请求。之后,目标机房的负载均衡组件可以根据预先的配置,在多个请求处理组件中选择出用于处理该业务请求的请求处理组件,然后将该业务请求发送至上述请求处理组件。此处,负载均衡组件具体可以采用“HaProxy”软件来实现。请求处理组件获取到业务请求后,可以对业务请求进行权限和格式校验,并对业务请求的数据进行解密处理,从而生成业务请求相关的待处理消息,然后将待处理消息发送至消息队列中。进而,业务执行模块可以从消息队列中拉取上述待处理消息,并基于待处理消息执行对应的业务操作。在执行业务操作的过程中,业务执行模块可以对其中涉及数据库的操作进行监听,如果出现了新增、修改、删除等数据变更操作,则可以基于数据变更操作更新本地数据库(即第一数据库),同时还可以生成对应数据变更操作的数据变更消息。业务操作执行完毕后,业务执行模块可以将执行结果反馈给请求处理模块,请求处理模块可以对执行结果进行数据加密处理,进而可以将加密后的执行结果反馈给目标终端。
可选的,机房在处理业务请求时,可以视该业务请求中是否包含数据变更操作进行不同的处理,相应的,步骤202的处理可以如下:目标机房调用业务处理线程开始处理业务请求,并监听是否存在数据库操作;如果不存在数据库操作,目标机房则向目标终端反馈业务处理结果,如果存在数据库操作,目标机房则判断数据库操作是否涉及数据变更;如果不涉及数据变更,目标机房则在第一数据库中进行数据库操作,基于数据库操作的结果继续处理业务请求,向目标终端反馈业务处理结果;如果涉及数据变更,目标机房则进行在第一数据库中进行数据变更操作,基于数据变更结果继续处理业务请求,向目标终端反馈业务处理结果,并根据数据变更操作生成数据变更消息,将数据变更消息存储在预设的消息队列中。
在实施中,目标机房接收到目标终端发送的业务请求后,可以调用相应的业务处理线程开始处理该业务请求,同时可以监听业务执行过程中是否存在数据库操作。如果直至业务执行完成,均未出现过数据库操作,则目标机房可以向目标终端反馈本次业务请求的业务处理结果。而如果在业务执行过程中出现了数据库操作,则目标机房可以先判断出现的数据库操作是否涉及数据变更。不难理解,数据库操作至少包括数据查询、拷贝、删除、增加、修改等,其中数据查询和拷贝不会改变数据库中的数据,而数据删除、增加和修改则会改变数据库中的数据,故而可称为数据变更操作。如果上述执行业务的过程中,不涉及数据变更,目标机房则可以在第一数据库中进行数据库操作,然后基于数据库操作到的结果继续处理业务请求,并在处理完后向目标终端反馈业务处理结果。而如果涉及数据变更,目标机房则可以先在第一数据库中进行数据变更操作,然后基于数据变更结果继续处理业务请求,并在处理完成后向目标终端反馈业务处理结果。同时,目标机房还可以根据数据变更操作生成数据变更消息,将数据变更消息存储在预设的消息队列中。此处,预设的消息队列可以采用消息中间件“RocketMQ”,优先到达消息队列的消息将会被优先处理,故而,可以有效保障“RocketMQ”中各个数据变更消息的先后顺序。
步骤203,目标机房向目标机房的关联机房发送数据变更消息。
在实施中,目标机房在执行业务请求对应的业务操作,并生成数据变更消息后,可以将数据变更消息发送至目标机房的关联机房。具体的,目标机房可以将数据变更消息直接发送至其关联机房的数据同步组件。
步骤204,关联机房根据接收到的数据变更消息进行数据同步。
在实施中,关联机房的数据同步组件可以接收目标机房发送的数据变更消息,然后基于数据变更消息进行数据同步。此处,如果目标机房在处理业务请求时,出现了多次数据变更操作,则会产生多个数据变更消息,这时则可以按照数据变更消息的顺序,依次在关联机房的数据库中进行相应的数据变更操作,从而可以实现目标机房和关联机房间数据的同步。
可选的,关联机房进行数据同步的处理具体可以如下:关联机房接收目标机房发送的数据变更消息,确定数据变更消息对应的目标终端的终端标识;关联机房根据终端标识,例如通过一致性哈希算法,确定对应终端标识的目标数据变更线程;关联机房调用目标数据变更线程,基于数据变更消息,在第二数据库中进行数据同步。
在实施中,任一机房中的数据同步组件都会订阅其关联机房的RocketMQ(即上述预设的消息队列)中的数据变更消息。故而,目标机房中的RocketMQ中新增了数据变更消息后,目标机房可以将数据变更消息按生成的先后顺序发送给其关联机房,这样,关联机房的数据同步组件会接收到相应的数据变更消息。从而,关联机房可以先确定上述数据变更消息对应的目标终端的终端标识,然后根据该终端标识,例如使用一致性哈希算法,确定出对应终端标识的目标数据变更线程。值得一提的是,为了保证数据同步的效率,在同一时刻,机房中一般会存在大量的线程对不同业务的数据进行同步处理,故而确定目标数据变更线程的操作可以保证同一终端标识对应的数据变更消息,将在同一个数据变更线程上进行处理,这样可以保证同一终端的数据同步操作的顺序性。最后,关联机房可以调用上述目标数据变更线程,基于数据变更消息,在关联机房对应的数据库(即第二数据库)中进行数据变更操作,从而完成数据同步。
上述从目标机房接收业务请求至关联机房完成数据同步的所有处理可以参考图4。
本发明实施例中,目标终端获取本地预先存储的目标机房的服务域名,通过服务域名向目标机房发送业务请求;目标机房执行业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;目标机房向目标机房的关联机房发送数据变更消息;关联机房根据接收到的数据变更消息进行数据同步。这样,当某一机房的数据库内发生了数据变更后,可以快速生成相应的数据变更消息,以使关联机房的数据库可以基于数据变更消息及时地进行数据同步,从而保证了机房和关联机房双活的可行性,提高了跨机房架构的机房处理资源的利用率。而且,关联机房的数据库可以基于数据变更消息及时地进行数据同步,能够使同一终端标识的数据在同一线程进行处理,同一终端的数据处理顺序按终端请求数据的顺序进行操作,避免数据乱序操作导致的业务行为异常。
基于相同的技术构思,本发明实施例还提供了一种数据同步的系统,所述系统包括目标终端、目标机房和所述目标机房的关联机房,其中:
所述目标终端,用于获取本地预先存储的所述目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求;
所述目标机房,用于执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;
所述目标机房,还用于向所述关联机房发送所述数据变更消息;
所述关联机房,用于根据接收到的所述数据变更消息进行数据同步。
可选的,所述系统还包括负载调度集群,其中:
所述目标终端,还用于向所述负载调度集群发送域名获取请求,所述域名获取请求中携带有所述目标终端的终端标识;
所述负载调度集群,用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目,例如通过一致性哈希算法确定目标VIP,并向所述目标终端发送所述目标VIP对应的目标机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述目标机房的服务域名。
可选的,所述目标终端,还用于如果检测到所述业务请求发送失败,则向所述负载调度集群发送携带有所述目标终端的终端标识的域名获取请求;
所述负载调度集群,还用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目,例如通过一致性哈希算法确定新VIP,并向所述目标终端发送所述新VIP对应的新机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述新机房的服务域名。
可选的,所述目标机房,具体用于:
调用业务处理线程开始处理所述业务请求,并监听是否存在数据库操作;
如果不存在数据库操作,则向所述目标终端反馈业务处理结果,如果存在数据库操作,则判断所述数据库操作是否涉及数据变更;
如果不涉及数据变更,则在所述第一数据库中进行数据库操作,基于所述数据库操作的结果继续处理所述业务请求,向所述目标终端反馈业务处理结果;
如果涉及数据变更,则在所述第一数据库中进行数据变更操作,基于数据变更结果继续处理所述业务请求,向所述目标终端反馈业务处理结果,并根据所述数据变更操作生成数据变更消息,将所述数据变更消息存储在预设的消息队列中。
可选的,所述关联机房,具体用于:
接收所述目标机房发送的数据变更消息,确定所述数据变更消息对应的目标终端的终端标识;
根据所述终端标识,例如通过一致性哈希算法,确定对应所述终端标识的目标数据变更线程;
调用所述目标数据变更线程,基于所述数据变更消息,在第二数据库中进行数据同步。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,目标终端获取本地预先存储的目标机房的服务域名,通过服务域名向目标机房发送业务请求;目标机房执行业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;目标机房向目标机房的关联机房发送数据变更消息;关联机房根据接收到的数据变更消息进行数据同步。这样,当某一机房的数据库内发生了数据变更后,可以快速生成相应的数据变更消息,以使关联机房的数据库可以基于数据变更消息及时地进行数据同步,从而保证了机房和关联机房双活的可行性,提高了跨机房架构的机房处理资源的利用率。而且,关联机房的数据库可以基于数据变更消息及时地进行数据同步,能够使同一终端标识的数据在同一线程进行处理,同一终端的数据处理顺序按终端请求数据的顺序进行操作,避免数据乱序操作导致的业务行为异常。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种数据同步的方法,其特征在于,所述方法包括:
目标终端获取本地预先存储的目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求;
所述目标机房执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;
所述目标机房向所述目标机房的关联机房发送所述数据变更消息;
所述关联机房根据接收到的所述数据变更消息进行数据同步;
其中,所述目标机房和所述关联机房具备的功能和支持的业务完全相同,同时对外提供相同的网络业务,当所述目标机房出现故障时,将所述目标机房内的网络业务转移至所述关联机房内继续执行;
其中,所述目标机房在执行业务操作的过程中,对涉及数据库的操作进行监听,如果出现了数据变更操作,则基于数据变更操作更新本地数据库,同时生成对应数据变更操作的数据变更消息;
其中,所述关联机房根据接收到的所述数据变更消息进行数据同步,包括:
所述关联机房接收所述目标机房发送的数据变更消息,确定所述数据变更消息对应的目标终端的终端标识;
所述关联机房根据所述终端标识确定对应所述终端标识的目标数据变更线程;
所述关联机房调用所述目标数据变更线程,基于所述数据变更消息,在第二数据库中进行数据同步。
2.根据权利要求1所述的方法,其特征在于,所述目标终端获取目标机房的服务域名之前,还包括:
所述目标终端向负载调度集群发送域名获取请求,所述域名获取请求中携带有所述目标终端的终端标识;
所述负载调度集群在所有机房对外服务的虚拟网络协议地址VIP中,确定健康VIP数目;
所述负载调度集群根据所述终端标识和所述健康VIP数目确定目标VIP,并向所述目标终端发送所述目标VIP对应的目标机房的服务域名;
所述目标终端接收并存储所述负载调度集群发送的所述目标机房的服务域名。
3.根据权利要求1所述的方法,其特征在于,所述通过所述服务域名向目标机房发送业务请求之后,还包括:
所述目标终端如果检测到所述业务请求发送失败,则向负载调度集群发送携带有所述目标终端的终端标识的域名获取请求;
所述负载调度集群在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群根据所述终端标识和所述健康VIP数目确定新VIP,并向所述目标终端发送所述新VIP对应的新机房的服务域名;
所述目标终端接收并存储所述负载调度集群发送的所述新机房的服务域名。
4.根据权利要求1所述的方法,其特征在于,所述目标机房执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息,包括:
所述目标机房调用业务处理线程开始处理所述业务请求,并监听是否存在数据库操作;
如果不存在数据库操作,所述目标机房则向所述目标终端反馈业务处理结果,如果存在数据库操作,所述目标机房则判断所述数据库操作是否涉及数据变更。
5.根据权利要求4所述的方法,其特征在于,
如果不涉及数据变更,所述目标机房则在所述第一数据库中进行数据库操作,基于所述数据库操作的结果继续处理所述业务请求,向所述目标终端反馈业务处理结果。
6.根据权利要求4所述的方法,其特征在于,
如果涉及数据变更,所述目标机房则在所述第一数据库中进行数据变更操作,基于数据变更结果继续处理所述业务请求,向所述目标终端反馈业务处理结果,并根据所述数据变更操作生成数据变更消息,将所述数据变更消息存储在预设的消息队列中。
7.一种数据同步的系统,其特征在于,所述系统包括目标终端、目标机房和所述目标机房的关联机房,其中:
所述目标终端,用于获取本地预先存储的所述目标机房的服务域名,通过所述服务域名向所述目标机房发送业务请求;
所述目标机房,用于执行所述业务请求对应的业务操作,并更新第一数据库,生成数据变更消息;
所述目标机房,还用于向所述关联机房发送所述数据变更消息;
所述关联机房,用于根据接收到的所述数据变更消息进行数据同步;
其中,所述目标机房和所述关联机房具备的功能和支持的业务完全相同,同时对外提供相同的网络业务,当所述目标机房出现故障时,将所述目标机房内的网络业务转移至所述关联机房内继续执行;
其中,所述目标机房,具体用于在执行业务操作的过程中,对涉及数据库的操作进行监听,如果出现了数据变更操作,则基于数据变更操作更新本地数据库,同时生成对应数据变更操作的数据变更消息;
其中,所述关联机房,具体用于:
接收所述目标机房发送的数据变更消息,确定所述数据变更消息对应的目标终端的终端标识;
根据所述终端标识确定对应所述终端标识的目标数据变更线程;
调用所述目标数据变更线程,基于所述数据变更消息,在第二数据库中进行数据同步。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括负载调度集群,其中:
所述目标终端,还用于向所述负载调度集群发送域名获取请求,所述域名获取请求中携带有所述目标终端的终端标识;
所述负载调度集群,用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目确定目标VIP,并向所述目标终端发送所述目标VIP对应的目标机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述目标机房的服务域名。
9.根据权利要求7所述的系统,其特征在于,所述目标终端,还用于如果检测到所述业务请求发送失败,则向负载调度集群发送携带有所述目标终端的终端标识的域名获取请求。
10.根据权利要求9所述的系统,其特征在于,
所述负载调度集群,还用于在所有机房对外服务的VIP中,确定健康VIP数目;
所述负载调度集群,还用于根据所述终端标识和所述健康VIP数目确定新VIP,并向所述目标终端发送所述新VIP对应的新机房的服务域名;
所述目标终端,还用于接收并存储所述负载调度集群发送的所述新机房的服务域名。
11.根据权利要求7所述的系统,其特征在于,所述目标机房,具体用于:
调用业务处理线程开始处理所述业务请求,并监听是否存在数据库操作;
如果不存在数据库操作,则向所述目标终端反馈业务处理结果,如果存在数据库操作,则判断所述数据库操作是否涉及数据变更。
12.根据权利要求11所述的系统,其特征在于,
如果不涉及数据变更,则在所述第一数据库中进行数据库操作,基于所述数据库操作的结果继续处理所述业务请求,向所述目标终端反馈业务处理结果。
13.根据权利要求11所述的系统,其特征在于,如果涉及数据变更,则在所述第一数据库中进行数据变更操作,基于数据变更结果继续处理所述业务请求,向所述目标终端反馈业务处理结果,并根据所述数据变更操作生成数据变更消息,将所述数据变更消息存储在预设的消息队列中。
CN201710911767.3A 2017-09-29 2017-09-29 一种数据同步的方法和系统 Active CN107465767B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710911767.3A CN107465767B (zh) 2017-09-29 2017-09-29 一种数据同步的方法和系统
PCT/CN2017/110955 WO2019061720A1 (zh) 2017-09-29 2017-11-14 一种数据同步的方法和系统
US15/777,575 US11172023B2 (en) 2017-09-29 2017-11-14 Data synchronization method and system
EP17879651.2A EP3490224B1 (en) 2017-09-29 2017-11-14 Data synchronization method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710911767.3A CN107465767B (zh) 2017-09-29 2017-09-29 一种数据同步的方法和系统

Publications (2)

Publication Number Publication Date
CN107465767A CN107465767A (zh) 2017-12-12
CN107465767B true CN107465767B (zh) 2020-06-23

Family

ID=60553882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710911767.3A Active CN107465767B (zh) 2017-09-29 2017-09-29 一种数据同步的方法和系统

Country Status (4)

Country Link
US (1) US11172023B2 (zh)
EP (1) EP3490224B1 (zh)
CN (1) CN107465767B (zh)
WO (1) WO2019061720A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108055343B (zh) * 2017-12-26 2021-07-13 北京奇虎科技有限公司 用于机房的数据同步方法及装置
CN110377577B (zh) * 2018-04-11 2022-03-04 北京嘀嘀无限科技发展有限公司 数据同步方法、装置、系统和计算机可读存储介质
CN109033235A (zh) * 2018-07-04 2018-12-18 北京量子保科技有限公司 一种数据存储双活架构构建方法、系统、介质和电子设备
CN108845867A (zh) * 2018-07-16 2018-11-20 郑州云海信息技术有限公司 一种分布式事务管理方法、装置、系统及存储介质
CN109947614A (zh) * 2018-11-28 2019-06-28 阿里巴巴集团控股有限公司 多机房依赖监控方法、装置、设备及计算机可读存储介质
CN109634978A (zh) * 2018-12-18 2019-04-16 钛马信息网络技术有限公司 数据读取一致性系统及方法
CN110362336B (zh) * 2019-06-21 2023-07-18 口碑(上海)信息技术有限公司 机房路由信息的获取方法及脚本数据配置方法及装置
CN110460664A (zh) * 2019-08-13 2019-11-15 深圳市商汤科技有限公司 信息同步方法及装置、电子设备和存储介质
CN110807018A (zh) * 2019-10-17 2020-02-18 上海易点时空网络有限公司 用于业务数据的主从架构迁移至集群架构的方法以及装置、设备、存储介质
CN110839023B (zh) * 2019-11-05 2022-03-25 北京中电普华信息技术有限公司 一种电力营销多渠道客户服务系统
CN111083204B (zh) * 2019-11-29 2022-11-15 广州市百果园信息技术有限公司 文件传输方法、装置及存储介质
CN111147546B (zh) * 2019-11-29 2021-05-14 中科院计算技术研究所大数据研究院 一种边缘集群资源的处理方法及系统
CN111327680B (zh) * 2020-01-21 2023-01-03 数字广东网络建设有限公司 认证数据同步方法、装置、系统、计算机设备和存储介质
CN112182095A (zh) * 2020-08-31 2021-01-05 福州智象信息技术有限公司 多机房之间进行业务数据同步的方法及装置、设备和介质
CN112738182A (zh) * 2020-12-24 2021-04-30 海南车智易通信息技术有限公司 数据推送系统、数据推送方法及计算设备
CN113779143A (zh) * 2021-08-20 2021-12-10 中国邮政储蓄银行股份有限公司 双活数据中心和业务系统
CN114780261B (zh) * 2022-04-28 2022-11-29 四川虹魔方网络科技有限公司 智能设备运营管理中基础数据微服务化共享系统及方法
CN114866799B (zh) * 2022-05-11 2024-04-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095769A (zh) * 2011-11-04 2013-05-08 阿里巴巴集团控股有限公司 跨机房的数据同步方法以及系统
CN103685583A (zh) * 2012-09-05 2014-03-26 阿里巴巴集团控股有限公司 一种域名解析的方法和系统
CN104202375A (zh) * 2014-08-22 2014-12-10 广州华多网络科技有限公司 同步数据的方法及系统
CN105872121A (zh) * 2015-12-15 2016-08-17 乐视移动智能信息技术(北京)有限公司 终端连接服务器的方法、终端及域名服务器

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820088B1 (en) 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US8060581B2 (en) 2000-07-19 2011-11-15 Akamai Technologies, Inc. Dynamic image delivery system
US8239504B2 (en) * 2007-01-07 2012-08-07 Apple Inc. Synchronization methods and systems
US8392591B2 (en) 2007-12-28 2013-03-05 Cellspinsoft Inc. Automatic multimedia upload for publishing data and multimedia content
US9215275B2 (en) * 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US8943315B1 (en) 2011-06-08 2015-01-27 Google Inc. System and method for controlling the upload of data already accessible to a server
US8655955B2 (en) * 2011-08-18 2014-02-18 International Business Machines Corporation Stream processing using a client-server architecture
US9641449B2 (en) 2012-05-22 2017-05-02 International Business Machines Corporation Variable configurations for workload distribution across multiple sites
US9363313B2 (en) * 2012-06-11 2016-06-07 Cisco Technology, Inc. Reducing virtual IP-address (VIP) failure detection time
CN103731451B (zh) 2012-10-12 2018-10-19 腾讯科技(深圳)有限公司 一种文件上传的方法及系统
US9515955B2 (en) * 2013-12-11 2016-12-06 Verizon Patent And Licensing Inc. Global server load balancing with queued messaging
CN104767603A (zh) * 2014-01-02 2015-07-08 北京思博途信息技术有限公司 一种提供网络服务的方法、服务器及用户终端
CN104320487B (zh) * 2014-11-11 2018-03-20 网宿科技股份有限公司 内容分发网络的http调度系统和方法
WO2016109778A1 (en) * 2014-12-31 2016-07-07 Servicenow, Inc. Failure resistant distributed computing system
CN104980519B (zh) * 2015-06-29 2019-03-05 北京奇虎科技有限公司 多机房存储系统
CN104967536A (zh) * 2015-06-29 2015-10-07 北京奇虎科技有限公司 实现多机房数据一致性的方法和装置
CN105635287A (zh) 2015-12-31 2016-06-01 深圳市网心科技有限公司 一种文件传输系统及方法
CN105472035A (zh) 2016-01-04 2016-04-06 百度在线网络技术(北京)有限公司 一种文件传输方法及装置
CN106980625B (zh) * 2016-01-18 2020-08-04 阿里巴巴集团控股有限公司 一种数据同步方法、装置及系统
CN106101291A (zh) 2016-08-26 2016-11-09 苏州蓝海彤翔系统科技有限公司 一种传输文件的方法、系统、服务器及客户端
CN106790648A (zh) * 2017-01-15 2017-05-31 网宿科技股份有限公司 一种任务数据同步的方法和系统
US10581859B2 (en) * 2017-08-07 2020-03-03 International Business Machines Corporation Detection and prevention of attempts to access sensitive information in real-time

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095769A (zh) * 2011-11-04 2013-05-08 阿里巴巴集团控股有限公司 跨机房的数据同步方法以及系统
CN103685583A (zh) * 2012-09-05 2014-03-26 阿里巴巴集团控股有限公司 一种域名解析的方法和系统
CN104202375A (zh) * 2014-08-22 2014-12-10 广州华多网络科技有限公司 同步数据的方法及系统
CN105872121A (zh) * 2015-12-15 2016-08-17 乐视移动智能信息技术(北京)有限公司 终端连接服务器的方法、终端及域名服务器

Also Published As

Publication number Publication date
EP3490224A4 (en) 2019-05-29
EP3490224A1 (en) 2019-05-29
US11172023B2 (en) 2021-11-09
WO2019061720A1 (zh) 2019-04-04
US20210176310A1 (en) 2021-06-10
CN107465767A (zh) 2017-12-12
EP3490224B1 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
CN107465767B (zh) 一种数据同步的方法和系统
CN111615066B (zh) 一种基于广播的分布式微服务注册及调用方法
CN108200219B (zh) 数据同步方法、装置、服务器及存储介质
US10313452B2 (en) Migrating a chat message service provided by a chat server to a new chat server
KR20080068110A (ko) 데이터 동기화 처리 방법 그리고 클라이언트 단말기, 서버및 그것의 데이터 동기화 시스템
CN110166562B (zh) 数据同步的方法、装置、存储介质和电子设备
EP3817338B1 (en) Method and apparatus for acquiring rpc member information, electronic device and storage medium
CN107688489B (zh) 一种调度任务的方法和系统
CN111526185B (zh) 数据下载方法、装置、系统及存储介质
CN111181765A (zh) 一种任务处理方法和装置
CN107566881B (zh) 一种vr设备控制方法、装置和系统
CN111756780B (zh) 一种同步连接信息的方法和负载均衡系统
CN114900449B (zh) 一种资源信息管理方法、系统及装置
US20230385161A1 (en) Network nodes and methods therein for providing backup network function
US20160261476A1 (en) Message system for avoiding processing-performance decline
CN105049255A (zh) 一种网元数据同步的方法及其装置
CN114116178A (zh) 集群框架任务管理方法以及相关装置
CN113783826B (zh) 一种微服务异常处理方法和装置
CN111106966B (zh) 一种信息处理方法及装置、设备、存储介质
CN111064618B (zh) 一种服务器高可用的实现方法、装置、设备和存储介质
CN113900728A (zh) 同步配置的方法、系统、电子设备及存储介质
CN111385324A (zh) 一种数据通信方法、装置、设备和存储介质
KR101659579B1 (ko) 퍼블리쉬-서브스크라이브 방식을 이용한 서버 다중화 서비스 제공장치 및 그 방법
CN111416861B (zh) 一种通信管理系统和方法
CN113220491B (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
GR01 Patent grant
GR01 Patent grant