CN114697346A - 服务器节点之间数据同步的方法 - Google Patents
服务器节点之间数据同步的方法 Download PDFInfo
- Publication number
- CN114697346A CN114697346A CN202210429640.9A CN202210429640A CN114697346A CN 114697346 A CN114697346 A CN 114697346A CN 202210429640 A CN202210429640 A CN 202210429640A CN 114697346 A CN114697346 A CN 114697346A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- time
- data synchronization
- synchronization
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000001360 synchronised effect Effects 0.000 claims abstract description 30
- 230000000694 effects Effects 0.000 claims description 13
- 230000007704 transition Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 8
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种服务器节点之间数据同步的方法,包括以下步骤:将服务器集群中的服务器节点,划分为一个专用服务器节点和多个普通服务器节点;初始配置阶段;非活跃用户数据同步方式和活跃用户数据同步方式。本发明具有以下优点:1)在同步数据时,仅在每个同步周期的第一次进行全量同步,剩余次数时,每次仅同步可能发生数据变化的数据,即:活跃用户的数据,从而减少同步的数据量,降低消耗的带宽;2)每次同步数据的范围小,需要拉取数据的用户少,因此,普通节点在拉取数据时的机器负载变低,同时专用节点也因为同步数据量减少而减轻写入数据时的机器负载。
Description
技术领域
本发明属于数据同步技术领域,具体涉及一种服务器节点之间数据同步的方法。
背景技术
随着分布式概念的逐渐普及,服务端架构通常基于分布式理念设计,然而现实中很多需求都是以全局或者多个服务器节点为范围,例如,希望在所有服务器的用户数据范围内,根据条件匹配到所需用户数据。通常采用以下解决方法:在服务器节点不多的情况下,采用rpc远程请求范围内的服务器节点,分别获取到所需要的用户数据,最终再汇总,因为需要实时远程通信请求,此种方式在获取数据的效率和可靠性方面均存在明显问题。另一种方法为,根据需求增加一个专用节点,再由专用节点去同步集群中所有节点的所有用户数据,当需要获取数据时,只需要在专用节点上匹配即可,可以避免大量rpc请求导致的效率和可靠性问题。
现有技术中,专用节点同步集群中所有节点的所有用户数据时,每次同步时都会同步范围内所有用户数据,当节点数较多或者需要同步的用户量较大时,每次同步的数据量比较大,存在两个问题:1)占用带宽大;2)更新数据时负载高。
发明内容
针对现有技术存在的缺陷,本发明提供一种服务器节点之间数据同步的方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种服务器节点之间数据同步的方法,包括以下步骤:
步骤1,将服务器集群中的服务器节点,划分为一个专用服务器节点和多个普通服务器节点;假设共有n个普通服务器节点;
步骤2,初始配置阶段:
专用服务器节点制定数据同步策略;其中,所述数据同步策略包括数据同步周期T以及数据同步周期内的同步时间间隔Δt;
每个普通服务器节点,维护用户配置表;所述用户配置表用于存储该普通服务器节点管理的每个用户的以下配置:用户ID、用户状态以及用户最新同步时刻LST变量;其中,用户状态包括:活跃用户和非活跃用户;
初始时,每个用户的最新同步时刻LST=0;
步骤3,令i=1;
步骤4,专用服务器节点启动第i个数据同步周期Ti,其数据同步方法为:
步骤4.1,在第i个数据同步周期Ti,从第i个数据同步周期Ti的起始时刻TSi开始,每隔时间间隔Δt,专用服务器节点向n个普通服务器节点下发一次数据同步指令;其中,数据同步指令中携带起始时刻TSi以及当前时间戳t;
步骤4.2,对于每个普通服务器节点,表示为:普通服务器节点node(j),j=1,2,…,n,当接收到数据同步指令时,执行以下操作:
步骤4.2.1,普通服务器节点node(j)检测其管理的每个用户的活跃度,判断每个用户的活跃度是否发生变化,如果没有发生变化,则执行步骤4.2.2或步骤4.2.3;如果发生变化,则执行步骤4.2.4;
步骤4.2.2,非活跃用户数据同步方式:
对于任意非活跃用户,表示为:IUser;
普通服务器节点node(j)从用户配置表中读取到非活跃用户IUser的最新同步时刻LST(IUser),并判断最新同步时刻LST(IUser)是否小于起始时刻TSi;如果小于,则采用起始时刻TSi更新用户配置表中该非活跃用户IUser的最新同步时刻LST(IUser),并获取当前时间戳t对应的非活跃用户IUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.3,活跃用户数据同步方式:
对于任意活跃用户,表示为:AUser;
普通服务器节点node(j)从用户配置表中读取到活跃用户AUser的最新同步时刻LST(AUser),判断最新同步时刻LST(AUser)是否小于起始时刻TSi;如果小于,则不更新用户配置表中该活跃用户AUser的最新同步时刻LST T(AUser),获取当前时间戳t对应的活跃用户AUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.4,在第i个数据同步周期Ti内,当检测到用户由非活跃用户变换为活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST置0,再执行步骤4.2.3;
在第i个数据同步周期Ti内,当检测到用户由活跃用户变换为非活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST更新为当前的起始时刻TSi,再执行步骤4.2.2。
优选的,在每个数据同步周期内进行第一次数据同步时,起始时刻TSi和当前时间戳t相等。
本发明提供的服务器节点之间数据同步的方法具有以下优点:
1)在同步数据时,仅在每个同步周期的第一次进行全量同步,剩余次数时,每次仅同步可能发生数据变化的数据,即:活跃用户的数据,从而减少同步的数据量,降低消耗的带宽;
2)每次同步数据的范围小,需要拉取数据的用户少,因此,普通节点在拉取数据时的机器负载变低,同时专用节点也因为同步数据量减少而减轻写入数据时的机器负载。
附图说明
图1为本发明提供的服务器节点之间数据同步的方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在实际应用中,在每次同步时间间隔内,只有活跃用户的数据有可能产生变化,大部分非活跃用户的数据没有变化,无需重复同步。因此,本发明提供一种服务器节点之间数据同步的方法,是一种高效的服务器节点之间数据同步的方法,使每次数据同步时,只同步可能产生变化的数据,从而有效减少同步数据量,提高数据同步效率。
参考图1,本发明提供的服务器节点之间数据同步的方法,包括以下步骤:
步骤1,将服务器集群中的服务器节点,划分为一个专用服务器节点和多个普通服务器节点;假设共有n个普通服务器节点;
步骤2,初始配置阶段:
专用服务器节点制定数据同步策略;其中,所述数据同步策略包括数据同步周期T以及数据同步周期内的同步时间间隔Δt;
每个普通服务器节点,维护用户配置表;所述用户配置表用于存储该普通服务器节点管理的每个用户的以下配置:用户ID、用户状态以及用户最新同步时刻LST变量;其中,用户状态包括:活跃用户和非活跃用户;
初始时,每个用户的最新同步时刻LST=0;
步骤3,令i=1;
步骤4,专用服务器节点启动第i个数据同步周期Ti,其数据同步方法为:
步骤4.1,在第i个数据同步周期Ti,从第i个数据同步周期Ti的起始时刻TSi开始,每隔时间间隔Δt,专用服务器节点向n个普通服务器节点下发一次数据同步指令;其中,数据同步指令中携带起始时刻TSi以及当前时间戳t;其中,在每个数据同步周期内进行第一次数据同步时,起始时刻TSi和当前时间戳t相等。
步骤4.2,对于每个普通服务器节点,表示为:普通服务器节点node(j),j=1,2,…,n,当接收到数据同步指令时,执行以下操作:
步骤4.2.1,普通服务器节点node(j)检测其管理的每个用户的活跃度,判断每个用户的活跃度是否发生变化,如果没有发生变化,则执行步骤4.2.2或步骤4.2.3;如果发生变化,则执行步骤4.2.4;
步骤4.2.2,非活跃用户数据同步方式:
对于任意非活跃用户,表示为:IUser;
普通服务器节点node(j)从用户配置表中读取到非活跃用户IUser的最新同步时刻LST(IUser),并判断最新同步时刻LST(IUser)是否小于起始时刻TSi;如果小于,则采用起始时刻TSi更新用户配置表中该非活跃用户IUser的最新同步时刻LST(IUser),并获取当前时间戳t对应的非活跃用户IUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.3,活跃用户数据同步方式:
对于任意活跃用户,表示为:AUser;
普通服务器节点node(j)从用户配置表中读取到活跃用户AUser的最新同步时刻LST(AUser),判断最新同步时刻LST(AUser)是否小于起始时刻TSi;如果小于,则不更新用户配置表中该活跃用户AUser的最新同步时刻LST T(AUser),获取当前时间戳t对应的活跃用户AUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.4,在第i个数据同步周期Ti内,当检测到用户由非活跃用户变换为活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST置0,再执行步骤4.2.3;
在第i个数据同步周期Ti内,当检测到用户由活跃用户变换为非活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST更新为当前的起始时刻TSi,再执行步骤4.2.2。
因此,本发明提供的服务器节点之间数据同步的方法,在每个数据同步周期,专用服务器节点每隔同步时间间隔Δt下发一次数据同步指令。假设在一个数据同步周期,共下发10次数据同步指令。
普通服务器节点管理的每个用户具有最新同步时刻LST;
对于非活跃用户,在一个数据同步周期,当第一次接收到数据同步指令时,由于其LST为0,必然小于本周期起始时刻TSi,因此,进行一次数据同步上传操作;此时,LST更新为起始时刻TSi,因此,对于后续9次数据同步指令,由于其不满足LST小于起始时刻TSi的条件,因此,不进行数据同步上传操作。也就是说,在当前一个数据同步周期,该非活跃用户仅需上传一次数据。
在下一个数据同步周期,专用服务器节点下发的同步指令的起始时刻TSi更新为起始时刻TSi+1;而该非活跃用户的LST=TSi;因此,对于第一次接收到数据同步指令时,满足:LST小于TSi+1,进行一次数据同步上传操作;对于后续9次数据同步指令,同样不再满足条件,不进行数据同步上传操作。所以,同样实现一个数据同步周期,该非活跃用户仅需上传一次数据。
对于活跃用户,在一个数据同步周期,当第一次接收到数据同步指令时,其LST为0,小于本周期起始时刻TSi,因此,进行一次数据同步上传操作,上传当前时间戳t对应的数据;
当第二次接收到数据同步指令时,其LST仍然为0,因此,仍然进行一次数据同步上传操作,上传当前时间戳t对应的数据;此时的时间戳t,与上一次上传的时间戳t不相同。
依此类推,在一个数据同步周期,活跃用户需要上传10次不同时间戳t对应的数据。
如果该活跃用户的状态不发生变化,在下一个数据同步周期,其LST仍然为0,仍然需要上传10次不同时间戳t对应的数据。
通过此种方式,满足活跃用户数据变化频繁,因此频繁上传的需求。
在一个数据同步周期内,当一个用户由活跃用户变化为非活跃用户时,将LST更新为TSi,因此,在本周期后续过程,不再上传同步数据。而当一个用户由非活跃用户变化为活跃用户时,将LST更新为0因此,在本周期后续过程,需要每次上传同步数据。
本发明提供的服务器节点之间数据同步的方法,具有以下优点:
1)在同步数据时,仅在每个同步周期的第一次进行全量同步,剩余次数时,每次仅同步可能发生数据变化的数据,即:活跃用户的数据,从而减少同步的数据量,降低消耗的带宽;
2)每次同步数据的范围小,需要拉取数据的用户少,因此,普通节点在拉取数据时的机器负载变低,同时专用节点也因为同步数据量减少而减轻写入数据时的机器负载。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (2)
1.一种服务器节点之间数据同步的方法,其特征在于,包括以下步骤:
步骤1,将服务器集群中的服务器节点,划分为一个专用服务器节点和多个普通服务器节点;假设共有n个普通服务器节点;
步骤2,初始配置阶段:
专用服务器节点制定数据同步策略;其中,所述数据同步策略包括数据同步周期T以及数据同步周期内的同步时间间隔Δt;
每个普通服务器节点,维护用户配置表;所述用户配置表用于存储该普通服务器节点管理的每个用户的以下配置:用户ID、用户状态以及用户最新同步时刻LST变量;其中,用户状态包括:活跃用户和非活跃用户;
初始时,每个用户的最新同步时刻LST=0;
步骤3,令i=1;
步骤4,专用服务器节点启动第i个数据同步周期Ti,其数据同步方法为:
步骤4.1,在第i个数据同步周期Ti,从第i个数据同步周期Ti的起始时刻TSi开始,每隔时间间隔Δt,专用服务器节点向n个普通服务器节点下发一次数据同步指令;其中,数据同步指令中携带起始时刻TSi以及当前时间戳t;
步骤4.2,对于每个普通服务器节点,表示为:普通服务器节点node(j),j=1,2,…,n,当接收到数据同步指令时,执行以下操作:
步骤4.2.1,普通服务器节点node(j)检测其管理的每个用户的活跃度,判断每个用户的活跃度是否发生变化,如果没有发生变化,则执行步骤4.2.2或步骤4.2.3;如果发生变化,则执行步骤4.2.4;
步骤4.2.2,非活跃用户数据同步方式:
对于任意非活跃用户,表示为:IUser;
普通服务器节点node(j)从用户配置表中读取到非活跃用户IUser的最新同步时刻LST(IUser),并判断最新同步时刻LST(IUser)是否小于起始时刻TSi;如果小于,则采用起始时刻TSi更新用户配置表中该非活跃用户IUser的最新同步时刻LST(IUser),并获取当前时间戳t对应的非活跃用户IUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.3,活跃用户数据同步方式:
对于任意活跃用户,表示为:AUser;
普通服务器节点node(j)从用户配置表中读取到活跃用户AUser的最新同步时刻LST(AUser),判断最新同步时刻LST(AUser)是否小于起始时刻TSi;如果小于,则不更新用户配置表中该活跃用户AUser的最新同步时刻LST T(AUser),获取当前时间戳t对应的活跃用户AUser的事务数据,并上传给专用服务器节点;如果不小于,则不向专用服务器节点上传同步数据,不进行任何操作;
步骤4.2.4,在第i个数据同步周期Ti内,当检测到用户由非活跃用户变换为活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST置0,再执行步骤4.2.3;
在第i个数据同步周期Ti内,当检测到用户由活跃用户变换为非活跃用户时,执行以下操作:
在用户活跃态发生变化时,首先将用户配置表中该用户的最新同步时刻LST更新为当前的起始时刻TSi,再执行步骤4.2.2。
2.根据权利要求1所述的服务器节点之间数据同步的方法,其特征在于,在每个数据同步周期内进行第一次数据同步时,起始时刻TSi和当前时间戳t相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210429640.9A CN114697346B (zh) | 2022-04-22 | 2022-04-22 | 服务器节点之间数据同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210429640.9A CN114697346B (zh) | 2022-04-22 | 2022-04-22 | 服务器节点之间数据同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114697346A true CN114697346A (zh) | 2022-07-01 |
CN114697346B CN114697346B (zh) | 2024-06-11 |
Family
ID=82145551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210429640.9A Active CN114697346B (zh) | 2022-04-22 | 2022-04-22 | 服务器节点之间数据同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114697346B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132603A (ja) * | 1998-10-27 | 2000-05-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散環境におけるスケジュールデータ管理方法および装置とスケジュールデータ管理プログラムを記録した記録媒体 |
CN101079869A (zh) * | 2006-05-26 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种基于分布式的数据同步方法及*** |
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步***、同步方法和节点管理方法 |
CN106528574A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及设备 |
WO2019144761A1 (zh) * | 2018-01-24 | 2019-08-01 | ***股份有限公司 | 一种数据同步方法和分布式***、设备 |
EP3754514A1 (en) * | 2018-02-12 | 2020-12-23 | ZTE Corporation | Distributed database cluster system, data synchronization method and storage medium |
CN112883119A (zh) * | 2021-04-30 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
-
2022
- 2022-04-22 CN CN202210429640.9A patent/CN114697346B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132603A (ja) * | 1998-10-27 | 2000-05-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散環境におけるスケジュールデータ管理方法および装置とスケジュールデータ管理プログラムを記録した記録媒体 |
CN101079869A (zh) * | 2006-05-26 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种基于分布式的数据同步方法及*** |
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步***、同步方法和节点管理方法 |
CN106528574A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及设备 |
WO2019144761A1 (zh) * | 2018-01-24 | 2019-08-01 | ***股份有限公司 | 一种数据同步方法和分布式***、设备 |
EP3754514A1 (en) * | 2018-02-12 | 2020-12-23 | ZTE Corporation | Distributed database cluster system, data synchronization method and storage medium |
CN112883119A (zh) * | 2021-04-30 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
A. BIERMAN; YUMAWORKS;M. BJORKLUND;TAIL-F SYSTEMS;: "A YANG Data Model for System Management draft-ietf-netmod-system-mgmt-13", IETF, 18 February 2014 (2014-02-18) * |
梁凝;单晓强;孙叠;: "数据库同步技术的研究", 工业控制计算机, no. 07, 25 July 2017 (2017-07-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN114697346B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426439B (zh) | 一种元数据的处理方法和装置 | |
US11068499B2 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
CN111368002A (zh) | 一种数据处理方法、***、计算机设备和存储介质 | |
WO2018010501A1 (zh) | 全局事务标识gtid的同步方法、装置及***、存储介质 | |
CN101369923B (zh) | 一种使用分布式哈希表提高集群web服务性能的方法 | |
CN107231400B (zh) | 一种数据的同步方法和装置 | |
CN112187896A (zh) | 支持改动实时通知和数据实时同步的缓存***及方法 | |
CN114726871A (zh) | 一种数据同步方法、装置和网络*** | |
CN114697346A (zh) | 服务器节点之间数据同步的方法 | |
CN201717889U (zh) | 渐进式数据同步*** | |
CN110912979B (zh) | 一种解决多服务器资源同步冲突方法 | |
CN108460047A (zh) | 数据同步方法及设备 | |
CN115712686A (zh) | 一种解决数据延迟到达的增量数据同步方法及装置 | |
CN108241657B (zh) | 一种web数据列表处理方法及装置 | |
CN102055606A (zh) | 一种业务支撑***中的业务处理方法、***及设备 | |
CN114756385A (zh) | 一种深度学习场景下的弹性分布式训练方法 | |
CN111124293B (zh) | 一种地址空间转换算法中的部分复制方法 | |
CN113420034A (zh) | 时钟更新方法、设备、数据库及计算机存储介质 | |
CN112751789A (zh) | 一种非对称sdn控制器集群的实现方法及*** | |
CN112966047B (zh) | 一种基于分布式数据库的复制表功能实现方法 | |
CN114254040A (zh) | 一种基于cdc的异构数据源准实时数据同步方法及*** | |
CN112559548B (zh) | 消息中间件的数据同步***及方法 | |
CN116401317B (zh) | 一种缓存数据同步方法、装置、电子设备及介质 | |
CN113364864B (zh) | 一种服务器数据同步方法、***及存储介质 | |
CN116567005A (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 |