CN110109932B - 一种确保分布式环境下主副本数据一致性的方法和系统 - Google Patents
一种确保分布式环境下主副本数据一致性的方法和系统 Download PDFInfo
- Publication number
- CN110109932B CN110109932B CN201910228868.XA CN201910228868A CN110109932B CN 110109932 B CN110109932 B CN 110109932B CN 201910228868 A CN201910228868 A CN 201910228868A CN 110109932 B CN110109932 B CN 110109932B
- Authority
- CN
- China
- Prior art keywords
- data
- version information
- client
- server
- consistency
- 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
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种确保分布式环境下主副本数据一致性的方法和系统,涉及数据采集技术领域,在网络闪断或服务器短暂故障等异常情况下也能够确保主副数据的一致性;该系统包括部署有分布式数据一致性比对组件的服务端和客户端,服务端和客户端分别定时或实时的将主副数据信息发布到注册中心;并定时将自身的数据信息与注册中心的数据信息进行比对,不一致时主动更新和同步数据;服务端定时检查注册中心的副本数据信息与主数据信息是否一致,不一致时直接通知客户端进行同步。本发明提供的技术方案适用于分布式环境下主副本数据同步的过程中。
Description
【技术领域】
本发明涉及数据采集技术领域,尤其涉及一种确保分布式环境下主副本数据一致性的方法和系统。
【背景技术】
现有的分布式环境下,存在着大量的数据主副本信息同步更新的需求。数据主本作为数据提供者,数据副本作为数据消费者,需要能够确保数据的一致性。
业界常用的一种实现方法是,数据变更使用“注册中心”的“发布/订阅”进行推送。数据提供者在数据变更之后,向“注册中心”发布变更通知,数据消费者根据订阅的变更通知,从数据提供者获取最新数据,更新本地数据副本。
但是,基于“注册中心”的发布订阅机制,在网络闪断、服务器短暂不可用等异常情况下,会造成订阅/发布机制失效,从而影响数据变更的推送,造成主副本数据不一致。
【发明内容】
有鉴于此,本发明提供了一种确保分布式环境下主副本数据一致性的方法和系统,在网络闪断或服务器短暂故障等异常情况下也能够确保主副数据的一致性。
一方面,本发明提供一种确保分布式环境下主副本数据一致性的方法,其特征在于,包括的机制有:
1)服务端定时检查注册中心的主数据版本信息和副本数据版本信息,并对注册中心的主数据版本信息和副本数据版本信息以及服务端自身的主数据版本信息的一致性进行判断,服务端根据判断结果做出数据同步的操作;
2)客户端定时检查注册中心的主数据版本信息和副本数据版本信息,并对注册中心的主数据版本信息和副本数据版本信息以及客户端自身的副本数据版本信息的一致性进行判断,客户端根据判断结果做出数据同步的操作。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,服务端根据判断结果做出的数据同步操作包括:
当服务端自身的主数据版本信息与注册中心的主数据版本信息不一致时,主动将服务端自身的主数据版本信息更新至注册中心;
当注册中心的主数据版本信息和副本数据版本信息不一致时,通知客户端进行副本数据同步。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,客户端根据判断结果做出的数据同步操作包括:当客户端自身或者注册中心的副本数据版本信息与注册中心的主数据版本信息不一致时,根据注册中心的主数据版本信息进行副本数据同步。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述的确保分布式环境下主副本数据一致性的方法,包括的机制还有:
3)服务端实时/定时的将主数据版本信息发布到注册中心;
4)客户端实时/定时的将副本数据版本信息发布到注册中心。
5)客户端订阅注册中心的主数据版本变更通知,收到通知主动进行副本数据同步。
另一方面,本发明提供一种适用于如上任一所述的确保分布式环境下主副本数据一致性的方法的系统,其特征在于,所述系统包括:
服务端,包括用于提供数据的常规服务端和部署在常规服务端上的分布式数据一致性比对组件服务端;所述分布式数据一致性比对组件服务端用于与注册中心进行通信;
客户端,包括用于提供数据的常规客户端和部署在常规客户端上的分布式数据一致性比对组件客户端;所述分布式数据一致性比对组件客户端用于与注册中心进行通信;
注册中心,用于存储服务端和客户端发布来的数据信息,并与服务端和客户端进行通信;
所述分布式数据一致性比对组件服务端和所述分布式数据一致性比对组件客户端通信连接。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式数据一致性比对组件服务端实时/定时的将主数据版本信息发布到注册中心。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式数据一致性比对组件客户端实时/定时的将副本数据版本信息发布到注册中心。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式数据一致性比对组件服务端定时检查服务端的主数据版本信息与发布到注册中心的主数据版本信息是否一致;若不一致,更新注册中心的主数据版本信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式数据一致性比对组件客户端定时检查副本数据版本信息和注册中心的主数据版本信息是否一致;若不一致,主动进行副本数据同步。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式数据一致性比对组件服务端定时将客户端发布到注册中心的副本数据版本信息与主数据版本信息进行比对,若不一致,由所述分布式数据一致性比对组件服务端直接通知所述分布式数据一致性比对组件客户端进行副本数据同步。
与现有技术相比,本发明可以获得包括以下技术效果:在网络闪断或服务器短暂故障等异常情况下能够确保主副数据的一致性;在正常情况下能够确保主副数据的一致性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有技术效果。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一个实施例提供的确保分布式环境下主副本数据一致性机制的原理结构图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
本发明的一种确保分布式环境下主副本数据一致性的方法和系统,基于一种“分布式数据一致性比对”组件,提供主副本数据比对功能,对于不一致的数据进行客户端主动拉取或服务端主动推送,为主副本数据的一致性提供保证。
图1是本发明一个实施例提供的确保分布式环境下主副本数据一致性机制的原理结构图。如图1所示,在服务端(即数据提供者)和客户端(即数据消费者)分别部署“分布式数据一致性比对组件”,主要提供如下机制,来确保主副本数据的一致性和实时性:
1、服务端:
a、服务端通过实时/定时两种机制,将主数据版本信息发布到“注册中心”;
b、服务端定时检查主数据版本信息与“注册中心”的版本信息是否一致,如果发现不一致,更新“注册中心”版本信息;
c、服务端定时检查客户端在“注册中心”存储的数据版本信息,如果发现与服务端提供的主数据版本信息不一致,可以直接通知客户端进行数据同步;
2、客户端:
d、客户端通过实时/定时两种机制,将数据消费者最新的副本数据版本信息发布到“注册中心”;
e、客户端“订阅”注册中心的主数据版本变更通知,收到通知主动进行副本数据同步;
f、客户端定时检查副本数据版本信息和服务端存储在“注册中心”的主数据版本信息,发现客户端的副本数据版本与主数据版本不一致,主动进行副本数据同步。
下面分别对服务端和客户端部署的分布式数据一致性比对组件进行说明:
1、分布式数据一致性比对组件服务端
“分布式数据一致性比对组件服务端”作为一个组件与数据提供者一起部署,数据提供者一般为一个独立部署的应用(例如配置中心)。
服务端需要满足的条件包括:
1)数据提供者需要实现“分布式数据一致性比对组件服务端”提供的一个接口(该接口负责收集数据提供者主数据的版本信息),“分布式数据一致性比对组件服务端”会将主数据版本信息发布到“注册中心”;
2)在数据提供者主数据变更时,会同时更新主数据版本,“分布式数据一致性比对组件服务端”会将收集到的版本信息实时推送到注册中心;
3)同时,为了避免实时推送由于异常原因失败的导致数据不一致的可能性,“分布式数据一致性比对组件服务端”还会按照设定的周期频率,定时检查数据提供者的主数据版本与注册中心的数据版本是否一致,不一致则自动进行注册中心数据版本的更新;
4)“分布式数据一致性比对组件服务端”从“注册中心”获取数据消费者的副本数据版本信息,发现数据消费者副本数据版本与主数据版本不一致,可以直接通知“分布式数据一致性比对组件客户端”进行数据同步。
2、分布式数据一致性比对组件客户端
“分布式数据一致性比对组件客户端”作为一个组件与数据消费者一起部署。数据消费者通常是分布式环境下应用的一部分(例如配置中心客户端),使用副本数据进行逻辑控制或处理。
1)数据消费者需要实现“分布式数据一致性比对组件客户端”提供的一个接口(该接口负责收集数据消费者副本数据的版本信息),“分布式数据一致性比对组件客户端”会将副本数据版本信息发布到“注册中心”;
2)“分布式数据一致性比对组件客户端”在“注册中心”订阅主数据的版本信息,在主数据版本发生变动时,基于“发布/订阅”机制实时获取到通知,进行副本数据同步;
3)同时,为了避免实时推送由于异常原因失败的导致数据不一致的可能性,“分布式数据一致性比对组件客户端”还会按照设定的周期频率,定时检查数据消费者副本数据的版本信息是否与数据提供者发布在“注册中心”的主数据版本是否一致,不一致则自动进行数据同步。
以上对本申请实施例所提供的一种确保分布式环境下主副本数据一致性的方法和系统,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
如在说明书及权利要求书当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求书当中所提及的“包含”、“包括”为一开放式用语,故应解释成“包含/包括但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求书所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求书的保护范围内。
Claims (10)
1.一种确保分布式环境下主副本数据一致性的方法,其特征在于,包括:
1)服务端定时检查注册中心的主数据版本信息和副本数据版本信息,并对注册中心的主数据版本信息和副本数据版本信息以及服务端自身的主数据版本信息的一致性进行判断,服务端根据判断结果做出数据同步的操作;
2)客户端定时检查注册中心的主数据版本信息和副本数据版本信息,并对注册中心的主数据版本信息和副本数据版本信息以及客户端自身的副本数据版本信息的一致性进行判断,客户端根据判断结果做出数据同步的操作。
2.根据权利要求1所述的确保分布式环境下主副本数据一致性的方法,其特征在于,服务端根据判断结果做出的数据同步操作包括:
当服务端自身的主数据版本信息与注册中心的主数据版本信息不一致时,主动将服务端自身的主数据版本信息更新至注册中心;
当注册中心的主数据版本信息和副本数据版本信息不一致时,通知客户端进行副本数据同步。
3.根据权利要求1所述的确保分布式环境下主副本数据一致性的方法,其特征在于,客户端根据判断结果做出的数据同步操作包括:当客户端自身或者注册中心的副本数据版本信息与注册中心的主数据版本信息不一致时,根据注册中心的主数据版本信息进行副本数据同步。
4.根据权利要求1所述的确保分布式环境下主副本数据一致性的方法,其特征在于,还包括:
3)服务端实时或定时的将主数据版本信息发布到注册中心;
4)客户端实时或定时的将副本数据版本信息发布到注册中心;
5)客户端订阅注册中心的主数据版本变更通知,收到通知主动进行副本数据同步。
5.一种适用于如权利要求1-4任一所述的确保分布式环境下主副本数据一致性的方法的系统,其特征在于,所述系统包括:
服务端,包括用于提供数据的常规服务端和部署在常规服务端上的分布式数据一致性比对组件服务端;所述分布式数据一致性比对组件服务端用于与注册中心进行通信;
客户端,包括用于提供数据的常规客户端和部署在常规客户端上的分布式数据一致性比对组件客户端;所述分布式数据一致性比对组件客户端用于与注册中心进行通信;
注册中心,用于存储服务端和客户端发布来的数据信息,并与服务端和客户端进行通信;
所述分布式数据一致性比对组件服务端和所述分布式数据一致性比对组件客户端通信连接。
6.根据权利要求5所述的确保分布式环境下主副本数据一致性的系统,其特征在于,所述分布式数据一致性比对组件服务端实时或定时的将主数据版本信息发布到注册中心。
7.根据权利要求5所述的确保分布式环境下主副本数据一致性的系统,其特征在于,所述分布式数据一致性比对组件客户端实时或定时的将副本数据版本信息发布到注册中心。
8.根据权利要求5所述的确保分布式环境下主副本数据一致性的系统,其特征在于,所述分布式数据一致性比对组件服务端定时检查服务端的主数据版本信息与发布到注册中心的主数据版本信息是否一致;若不一致,更新注册中心的主数据版本信息。
9.根据权利要求5所述的确保分布式环境下主副本数据一致性的系统,其特征在于,所述分布式数据一致性比对组件客户端定时检查副本数据版本信息和注册中心的主数据版本信息是否一致;若不一致,主动进行副本数据同步。
10.根据权利要求5所述的确保分布式环境下主副本数据一致性的系统,其特征在于,所述分布式数据一致性比对组件服务端定时将客户端发布到注册中心的副本数据版本信息与主数据版本信息进行比对,若不一致,由所述分布式数据一致性比对组件服务端直接通知所述分布式数据一致性比对组件客户端进行副本数据同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910228868.XA CN110109932B (zh) | 2019-03-25 | 2019-03-25 | 一种确保分布式环境下主副本数据一致性的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910228868.XA CN110109932B (zh) | 2019-03-25 | 2019-03-25 | 一种确保分布式环境下主副本数据一致性的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109932A CN110109932A (zh) | 2019-08-09 |
CN110109932B true CN110109932B (zh) | 2021-07-09 |
Family
ID=67484584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910228868.XA Active CN110109932B (zh) | 2019-03-25 | 2019-03-25 | 一种确保分布式环境下主副本数据一致性的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109932B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489491B (zh) * | 2019-08-26 | 2023-07-04 | 湖南中车时代通信信号有限公司 | 一种适用于a/b网双集群的全量数据同步装置 |
CN112860708B (zh) * | 2021-03-16 | 2024-05-24 | 深圳前海微众银行股份有限公司 | 数据一致性修复方法、系统、装置及设备 |
CN113342785B (zh) * | 2021-07-06 | 2023-06-27 | 多点生活(成都)科技有限公司 | 数据处理方法和装置、服务端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345478A (zh) * | 2013-06-17 | 2013-10-09 | 武汉天罡信息技术有限公司 | 一种用于智慧城市建设的通用标识编码系统 |
CN107809326A (zh) * | 2016-09-09 | 2018-03-16 | 阿里巴巴集团控股有限公司 | 数据一致性的处理方法、装置和设备 |
EP3336718A1 (en) * | 2016-12-16 | 2018-06-20 | CompuGroup Medical SE | Method for querying a database |
CN108234641A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读写方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339106B2 (en) * | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
-
2019
- 2019-03-25 CN CN201910228868.XA patent/CN110109932B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345478A (zh) * | 2013-06-17 | 2013-10-09 | 武汉天罡信息技术有限公司 | 一种用于智慧城市建设的通用标识编码系统 |
CN107809326A (zh) * | 2016-09-09 | 2018-03-16 | 阿里巴巴集团控股有限公司 | 数据一致性的处理方法、装置和设备 |
EP3336718A1 (en) * | 2016-12-16 | 2018-06-20 | CompuGroup Medical SE | Method for querying a database |
CN108234641A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110109932A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109932B (zh) | 一种确保分布式环境下主副本数据一致性的方法和系统 | |
EP2341411B1 (en) | Time synchronization method and system for multicore system | |
DE102014204752A1 (de) | Fehlertolerantes taktnetzwerk | |
US8538923B2 (en) | Method, node and system for controlling version in distributed system | |
EP2443749B1 (en) | System and method for selecting optimum local oscillator discipline source | |
US8598956B2 (en) | System and method for reducing holdover duration | |
CN109600323B (zh) | 一种拜占庭共识机制 | |
CN109714392A (zh) | 一种跨机房数据同步方法和装置 | |
CN106850724B (zh) | 数据推送方法及装置 | |
CN116107828A (zh) | 主节点选择方法、分布式数据库及存储介质 | |
WO2022037359A1 (zh) | 配置数据访问方法、装置、设备、配置中心及存储介质 | |
AU772217B2 (en) | Method, program and arrangement for synchronizing a network manager to a network agent | |
JP2018091828A (ja) | デジタル電力変電所の保護ゾーン内での時刻源同期のためのシステムおよび方法 | |
US11323194B2 (en) | Cross domain synchronization in a communication network | |
CN107547160B (zh) | 一种时间同步方法及装置 | |
CN108874531B (zh) | 用于熔断服务的方法、装置、系统及电子设备 | |
CN110909048A (zh) | 数据查询方法、装置、服务器、客户端及存储介质 | |
CN109344202B (zh) | 一种数据同步方法及管理节点 | |
CN110716828A (zh) | 一种数据库实时备份方法 | |
CN107404511B (zh) | 集群中服务器的替换方法及设备 | |
CN114422335A (zh) | 通信方法、装置、服务器及存储介质 | |
CN113872718A (zh) | 实现时间同步功能的系统、方法、装置、处理器及其计算机可读存储介质 | |
CN112015744B (zh) | 配置数据访问方法、装置、设备、配置中心及存储介质 | |
CN109218044B (zh) | 一种故障处理方法和装置 | |
CN111988186B (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 |