CN113051091A - 一种进程级缓存数据同步方法和装置 - Google Patents
一种进程级缓存数据同步方法和装置 Download PDFInfo
- Publication number
- CN113051091A CN113051091A CN202110485989.XA CN202110485989A CN113051091A CN 113051091 A CN113051091 A CN 113051091A CN 202110485989 A CN202110485989 A CN 202110485989A CN 113051091 A CN113051091 A CN 113051091A
- Authority
- CN
- China
- Prior art keywords
- data
- level cache
- synchronized
- cache data
- type
- 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
- 238000000034 method Methods 0.000 title claims abstract description 535
- 230000008569 process Effects 0.000 title claims abstract description 458
- 230000001360 synchronised effect Effects 0.000 claims abstract description 200
- 230000007246 mechanism Effects 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000003491 array Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 abstract description 13
- 238000004891 communication Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000009467 reduction Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种进程级缓存数据同步方法和装置,该方法包括:将事件发生进程与待同步进程建立订阅关系;获取事件发生进程的进程级缓存数据;将事件发生进程的进程级缓存数据序列化,确定二进制数组;根据订阅关系将二进制数组广播给待同步进程;将二进制数组反序列化,确定同步数据;根据同步数据,将待同步进程进行进程级缓存数据同步。本发明解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性。
Description
技术领域
本发明涉及计算机数据处理技术领域,尤其涉及一种进程级缓存数据同步方法和装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
互联网+给企业应用带来流量的同时,也带来了服务可用性的巨大挑战,为了满足海量用户的需求,应用服务器数量从原来的几台水平扩容至现在的几百台,但水平扩容并不能无限制的提升应用服务性能。
分布式缓存的引入可以进一步提升应用程序的性能,但随着请求并发数的逐步增长,它的中心化服务的特性,反而成为了应用程序性能之瓶颈。
进程级缓存凭借其非中心化服务的特性,逐渐被IT技术人员认可并使用,然而在微服务集群中使用进程级缓存,面临着集群中各节点缓存数据不一致的挑战,这是无状态化微服务所无法容忍的,因为用户办理一笔业务时,用户请求可能会被分发到微服务集群中的多个节点进行处理,若集群各节点进程缓存数据不一致,可能会导致业务处理结果的不确定性。造成微服务集群中各节点进程级缓存数据的不一致性问题。
因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
发明内容
本发明实施例提供一种进程级缓存数据同步方法,解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性,该方法包括:
将事件发生进程与待同步进程建立订阅关系;
获取事件发生进程的进程级缓存数据;
将事件发生进程的进程级缓存数据序列化,确定二进制数组;
根据订阅关系将二进制数组广播给待同步进程;
将二进制数组反序列化,确定同步数据;
根据同步数据,将待同步进程进行进程级缓存数据同步。
本发明实施例还提供一种进程级缓存数据同步装置,包括:
订阅关系建立模块,用于将事件发生进程与待同步进程建立订阅关系;
进程级缓存数据获取模块,用于获取事件发生进程的进程级缓存数据;
序列化模块,用于将事件发生进程的进程级缓存数据序列化,确定二进制数组;
二进制数组广播模块,用于根据订阅关系将二进制数组广播给待同步进程;
反序列化模块,用于将二进制数组反序列化,确定同步数据;
进程级缓存数据同步模块,用于根据同步数据,将待同步进程进行进程级缓存数据同步。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种进程级缓存数据同步方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述一种进程级缓存数据同步方法的计算机程序。
本发明实施例提供的一种进程级缓存数据同步方法和装置,包括:首先将事件发生进程与待同步进程建立订阅关系;然后获取事件发生进程的进程级缓存数据;继续将事件发生进程的进程级缓存数据序列化,确定二进制数组;接着根据订阅关系将二进制数组广播给待同步进程;下一步将二进制数组反序列化,确定同步数据;最后根据同步数据,将待同步进程进行进程级缓存数据同步。解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,减少进程级缓存同步的延迟时间,进而保证缓存同步的实时性,利用订阅机制的及时性特点,通过发布与订阅使微服务集群节点的扩容或缩容对事件发生进程透明,使得事件发生进程在产生进程级缓存数据时无需关注通知对象,该部分工作由订阅机制完成,及时性避免了历史消息重复消费问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例一种进程级缓存数据同步方法示意图。
图2为本发明实施例一种进程级缓存数据同步方法的流程图。
图3为本发明实施例一种进程级缓存数据同步方法的序列化过程示意图。
图4为运行本发明实施的一种进程级缓存数据同步方法的计算机装置示意图。
图5为本发明实施例一种进程级缓存数据同步装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1为本发明实施例一种进程级缓存数据同步方法示意图,如图1所示,本发明实施例提供一种进程级缓存数据同步方法,解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性,该方法包括:
步骤101:将事件发生进程与待同步进程建立订阅关系;
步骤102:获取事件发生进程的进程级缓存数据;
步骤103:将事件发生进程的进程级缓存数据序列化,确定二进制数组;
步骤104:根据订阅关系将二进制数组广播给待同步进程;
步骤105:将二进制数组反序列化,确定同步数据;
步骤106:根据同步数据,将待同步进程进行进程级缓存数据同步。
本发明实施例提供的一种进程级缓存数据同步方法,包括:首先将事件发生进程与待同步进程建立订阅关系;然后获取事件发生进程的进程级缓存数据;继续将事件发生进程的进程级缓存数据序列化,确定二进制数组;接着根据订阅关系将二进制数组广播给待同步进程;下一步将二进制数组反序列化,确定同步数据;最后根据同步数据,将待同步进程进行进程级缓存数据同步。解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,减少进程级缓存同步的延迟时间,进而保证缓存同步的实时性,利用订阅机制的及时性特点,通过发布与订阅使微服务集群节点的扩容或缩容对事件发生进程透明,使得事件发生进程在产生进程级缓存数据时无需关注通知对象,该部分工作由订阅机制完成,及时性避免了历史消息重复消费问题。
在本发明实施例中,对如下专业词汇进行解释。
进程级缓存:为了提高程序运行效率,在应用程序运行所在的进程内部分配一定的内存空间,并且将数据保存在该内存空间,当客户端请求应用程序提供的服务时,应用程序直接将该内存空间保存的数据返回给客户端,此处的数据即为进程级缓存数据,这种机制即为进程级缓存。
消息:两个独立进程间通信的数据称为消息。
数据同步:将进程A的数据拷贝一份发送给进程B,此时进程B也具有进程A同样的数据,此过程称为数据同步。
并发数:同一时刻,同一个交易(如支付交易)请求数量。
缓存:用户在获取资源时,不直接从数据库或资源库拉取数据,而是从性能更高的缓存服务器拉取,其优势就是速度快,一方面可以提升用户体验,另一方面可以减少了数据库或资源库的请求响应压力。通常,缓存是KEY:VALUE键值对数据结构,通过KEY可以快速读写VALUE信息。
分布式缓存:有多个服务器组成一个集群,对外提供无状态化、一致的缓存服务能力,访问集群中任意节点均能获得同样的结果。
缓存Key,即缓存属性:用于唯一标识某一个缓存数据(或缓存Value)。
缓存Value,即缓存属性值:缓存key标识的实际数据内容。
目前进程级缓存主要是基于KEY:VALUE键值对的数据结构在本进程内存空间保存数据,不具备跨进程缓存数据的同步能力。
本发明主要是解决微服务集群中各节点进程级缓存数据的不一致性问题,实现了跨进程缓存数据的同步。
图2为本发明实施例一种进程级缓存数据同步方法的流程图,如图2所示,具体实施本发明实施例提供的一种进程级缓存数据同步方法时,可以包括:
将事件发生进程与待同步进程建立订阅关系;
获取事件发生进程的进程级缓存数据;
将事件发生进程的进程级缓存数据序列化,确定二进制数组;
根据订阅关系将二进制数组广播给待同步进程;
将二进制数组反序列化,确定同步数据;
根据同步数据,将待同步进程进行进程级缓存数据同步。
本发明解决了微服务集群中各节点缓存数据一致性问题,充分利用了各应用节点服务器的资源,将其服务器的部分资源充当缓存服务资源。因各个服务器均保存同样的缓存数据,从而构建了一个非中心化的分布式缓存服务器。因其为进程内缓存,相比于REDIS等分布式缓存,其缓存数据读写过程的网络IO次数大幅减少,应用程序性能会大幅提升。因其为非中心化的分布式缓存服务器,相比于REDIS等分布式缓存,没有中心化带来的性能瓶颈。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,将事件发生进程与待同步进程建立订阅关系,包括:
利用REDIS的事件发布订阅机制将事件发生进程与待同步进程建立订阅关系。
实施例中,事件发生进程可以与多个待同步进程建立订阅关系,利用REDIS的事件发布订阅机制将事件发生进程与多个待同步进程建立订阅关系。
REDIS的事件发布订阅机制,具有及时性特点(即不持久化消息)。发布与订阅使微服务集群节点的扩容或缩容对事件发生进程透明,使得事件发生进程在缓存数据增(或删或改)时无需关注通知对象,该部分工作由REDIS的订阅机制完成,及时性避免了历史消息重复消费问题。多个待同步进程可以同步获取事件发生进程的进程级缓存数据。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,获取事件发生进程的进程级缓存数据,包括:
在事件发生进程发生增删改操作时,获取包括增类型数据、改类型数据和删类型数据的进程级缓存数据。
实施例中,在事件发生进程中,在发生增删改操作时,分别会产生增类型数据、改类型数据和删类型数据;然后获取包括增类型数据、改类型数据和删类型数据的进程级缓存数据。
图3为本发明实施例一种进程级缓存数据同步方法的序列化过程示意图,如图3所示,具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,将事件发生进程的进程级缓存数据序列化,确定二进制数组,包括:
步骤301:将事件发生进程的进程级缓存数据序列化,确定事件发生进程的进程级缓存数据的属性及其对应的属性值;
步骤302:将进程级缓存数据的属性替换为有序序号;
步骤303:将属性对应的属性值进行二进制处理,确定二进制属性值;
步骤304:将有序序号与二进制属性值进行对应组装,确定二进制数组。
实施例中,序列化过程,包括:首先将事件发生进程的进程级缓存数据序列化,确定事件发生进程的进程级缓存数据的属性及其对应的属性值;然后将进程级缓存数据的属性替换为有序序号;接着将属性对应的属性值进行二进制处理,确定二进制属性值;最后将有序序号与二进制属性值进行对应组装,确定二进制数组。
本发明利用高性能的序列化/反序列化技术PROTOBUFF,它能够最大程度的减少序列化结果的字节数,进而提升网络传输效率,减少进程级缓存同步的延迟时间。
普通序列化技术的序列化结果为key/value格式的二进制数组,key为属性,value为属性对应值。本发明实施例采用的PROTOBUFF技术采用有序序号1\2\3等数字代替属性key,从而减少了数据序列化结果的字节数组大小,尤其当key字节数比较大时,效果尤为明显。PROTOBUFF数据结构举例:
message CacheClusterSynBean{
string flag=1;
string cacheName=2;
string cacheMode=3;
int64 maximumSize=4;
int64 expireAfterWriteMs=5;
string processId=6;
int64 eventTimeStamp=7;
string data=8;
bool allEntries=9;
}
此时,属性flag用1替代,4个字节减少到1个字节;属性cacheNmae用2替代,9个字节减少到1个字节。
本发明实施例对对序列化和反序列化过程做了优化工作,在PROTOBUFF技术的基础上进行了扩展,在保证其他进程收到二进制数组后能够将其转换为缓存实际数据的前提下,对二进程数组的大小和转换效率做了优化。主要目的是减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性。
同步消息报文中包含固定属性和可变属性,但PROTOBUFF序列化技术要求必须预先定义属性并为其分配序号。可变属性因无法预先定义,所以针对已知的固定属性key采用有序序号替代,针对可变属性将其属性key和属性值value通过普通序列化技术进行序列化,并且把序列化结果赋值给固定的属性key:data。
在进行反序列化时针对属性data对应的value采用普通序列化技术进行反序列化,其他采用PROTOBUFF反序列化。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,根据订阅关系将二进制数组广播给待同步进程,包括:
事件发生进程将二进制数组向REDIS指定的消息暂存服务器消息交换通道发布;
待同步进程通过订阅关系订阅消息暂存服务器消息交换通道,获取二进制数组。
实施例中,二进制数组广播过程,主要包括:首先事件发生进程将二进制数组向REDIS指定的消息暂存服务器消息交换通道发布;然后待同步进程通过订阅关系订阅消息暂存服务器消息交换通道,获取二进制数组。实施例中,二级制数组属于消息的一种。
如图2所示,将事件发生进程定义为进程A,将待同步进程定义为进程B、进程C、进程D,当进程A缓存数据在增(或删或改)的时候,向REDIS指定的CHANNEL发布一个增(或删或改)事件,然后进程B、进程C、进程D订阅该事件,将收到的事件还原为缓存数据并保存在各自的进程内部空间。此时就完成了进程级缓存数据同步流程。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,将二进制数组反序列化,确定同步数据,包括:
将二进制数组拆分为对应的有序序号和二进制属性值;
将二进制属性值转换为具体Java类型数据,确定属性值;
将有序序号转换为属性;
将属性值和属性反序列化,确定同步数据。
实施例汇总,反序列化过程,主要包括:首先将二进制数组拆分为对应的有序序号和二进制属性值;然后将二进制属性值转换为具体Java类型数据,确定属性值;接着将有序序号转换为属性;最后将属性值和属性反序列化,确定同步数据。
在进行反序列化时,把有序序号转换为对应的属性key,并且分别将其二进制属性值对应的二进制属性值转换为具体的java类型,确定属性值value。
本发明实施例对对序列化和反序列化过程做了优化工作,在PROTOBUFF技术的基础上进行了扩展,在保证其他进程收到二进制数组后能够将其转换为缓存实际数据的前提下,对二进程数组的大小和转换效率做了优化。主要目的是减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性。
同步消息报文中包含固定属性和可变属性,但PROTOBUFF序列化技术要求必须预先定义属性并为其分配序号。可变属性因无法预先定义,所以针对已知的固定属性key采用有序序号替代,针对可变属性将其属性key和属性值value通过普通序列化技术进行序列化,并且把序列化结果赋值给固定的属性key:data。
在进行反序列化时针对属性data对应的value采用普通序列化技术进行反序列化,其他采用PROTOBUFF反序列化。
实施例中,实施序列化与反序列化的基础,在于定义进程缓存增(或删或改)操作对应的数据结构,并能够序列化为较小字节数的二进制数组,在反序列化能够将二进制数组转换为JAVA基本类型或用户自定义类型的对象,该部分对于本发明实施例至关重要。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,根据同步数据,将待同步进程进行进程级缓存数据同步,包括:
将同步数据按照不同操作类型,分为增类型同步数据、改类型同步数据和删类型同步数据;
将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步。
实施例中,在待同步进程接收到同步数据后,将同步数据按照不同操作类型,分为增类型同步数据、改类型同步数据和删类型同步数据,然后将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步。
实施例中,对于进程级缓存中,需要维护进程级缓存的名字与缓存之间的映射关系,确保根据缓存名称可以获取到对应的进程级缓存,进而对其进行同步操作;同步消息报文中包含进程级缓存的名字(唯一标识一个缓存对象),订阅者使用该名字识别将要同步的进程级缓存对象,并把数据同步写到该对象里。缓存名字与缓存对象之间的对应关系即为映射关系,通常使用Map数据结构保存。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步,包括:
当映射数据为增类型同步数据时,将属性值和属性写入待同步进程的进程级缓存中;
当映射数据为改类型同步数据时,将属性值和属性覆盖待同步进程缓存中已有的数据;
当映射数据为删类型同步数据时,将待同步进程缓存中已有的属性删除。
实施例中,区分增类型同步数据、改类型同步数据和删类型同步数据,映射至同步进程进行进程级缓存数据同步,针对不同的类型进行不同的处理:
增类型同步数据:将其KEY和VALUE写入到本进程级缓存中;
改类型同步数据:将其KEY和VALUE覆盖本进程级缓存中已有的数据;
删类型同步数据:将本进程级缓存中已有的KEY删除。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,在将待同步进程进行进程级缓存数据同步之前,校验同步数据的进程号;
当同步数据的进程号与待同步进程的进程号一致时,执行进程级缓存数据同步。
本发明实施例还包括进程号的校验,包括:在将待同步进程进行进程级缓存数据同步之前,校验同步数据的进程号;当同步数据的进程号与待同步进程的进程号一致时,执行进程级缓存数据同步。当同步数据的进程号与待同步进程的进程号不一致时,不执行进程级缓存数据同步。
具体实施本发明实施例提供的一种进程级缓存数据同步方法时,在一个实施例中,在同步数据的进程号与待同步进程的进程号一致之后,还包括:
校验同步数据时间戳;
当同步数据时间戳与当前系统时间戳之间的差值小于延时阈值时,执行进程级缓存数据同步。
实施例中,考虑到发布订阅消息的时效性,对于过期的数据应该忽略,以免造成缓存数据污染,主要过程包括:在同步数据的进程号与待同步进程的进程号一致之后,还包括:校验同步数据时间戳;当同步数据时间戳与当前系统时间戳之间的差值小于延时阈值时,执行进程级缓存数据同步。当同步数据时间戳与当前系统时间戳之间的差值不小于延时阈值时,不执行进程级缓存数据同步。
实施例中,同步消息报文中包含消息生产时的时间戳,订阅者收到消息时,判断消息时间戳与当前系统时间之差值是否在可接受范围内,超过范围的数据即视为过期数据,并忽略过期数据;基于此,本发明实施例增加了时间戳校验,先校验(当前系统时间戳)-(增删改同步数据的时间戳)<=延时阈值(默认1秒),满足条件时才执行同步处理。
本发明主要是基于REDIS的消息发布订阅机制进行进程级缓存数据的同步。如图2所示,当进程A缓存数据在增(或删或改)的时候,向REDIS指定的CHANNEL发布一个增(或删或改)事件,然后进程B、进程C、进程D订阅该事件,将收到的事件还原为缓存数据并保存在各自的进程内部空间。此时就完成了进程级缓存数据同步流程。
本发明主要利用REDIS的事件发布订阅机制和及时性特点(即不持久化消息)。发布与订阅使微服务集群节点的扩容或缩容对进程A透明,使得进程A在缓存数据增(或删或改)时无需关注通知对象,该部分工作由REDIS的订阅机制完成,及时性避免了历史消息重复消费问题。
本发明采用了谷歌开源的高性能的序列化/反序列化技术PROTOBUFF,它能够最大程度的减少序列化结果的字节数,进而提升网络传输效率,减少进程级缓存同步的延迟时间。
定义进程缓存增(或删或改)操作对应的数据结构,并能够序列化为较小字节数的二进制数组,在反序列化能够将二进制数组转换为JAVA基本类型或用户自定义类型的对象,该部分对于本发明至关重要。
考虑发布订阅消息的时效性,对于过期的数据应该忽略,以免造成缓存数据污染,包括:同步消息报文中包含消息生产时的时间戳,订阅者收到消息时,判断消息时间戳与当前系统时间之差值是否在可接受范围内,超过范围的数据即视为过期数据,并忽略过期数据。
维护进程级缓存的名字与缓存之间的映射关系,确保根据缓存名称可以获取到对应的进程级缓存,进而对其进行同步操作,包括:同步消息报文中包含进程级缓存的名字(唯一标识一个缓存对象),订阅者使用该名字识别将要同步的进程级缓存对象,并把数据同步写到该对象里。缓存名字与缓存对象之间的对应关系即为映射关系,通常使用Map数据结构保存。
本发明实施例中还提供了一种进程级缓存数据同步模块,包括:
①序列化与反序列化模块:
序列化模块主要功能是将进程级缓存数据的增(或删或改)数据转化为二进制数组;
反序列化模块主要功能是将收到的二进制数组转换为进程级缓存数据的增(或删或改)数据;
②事件发布与订阅模块:
事件发布模块主要功能是将已序列化的增(或删或改)数据的二进制数组广播给其他进程级缓存;
订阅模块主要功能是接收发布模块所发布的二进制数组,并将其反序列化为增(或删或改)数据;
③缓存数据同步模块:
该模块主要功能是处理订阅模块收到的已反序列化的增(或删或改)数据。
此处区分增、删、改类型,针对不同的类型进行不同的处理:
增类型:将其KEY和VALUE写入到本进程级缓存中;
改类型:将其KEY和VALUE覆盖本进程级缓存中已有的数据;
删类型:将本进程级缓存中已有的KEY删除。
本发明实施例中还提供了一种进程级缓存数据同步方法的流程,将事件发生进程定义为进程A,将待同步进程定义为进程B,包括:
步骤1:序列化模块将进程级缓存的增删改数据转换为二进制数组(进程A);
步骤2:事件发布模块将步骤1的二进制数组发给REDIS服务器的指定CHANNEL里(进程A);
步骤3:事件订阅模块订阅REDIS指定的CHANNEL并接收步骤2的二进制数组(进程B);
步骤4:反序列化模块将步骤3接收的二进制数组转换为增删改数据(进程B);
步骤5:缓存同步模块将步骤4的增删改数据一一映射到本进程级缓存中(进程B)。
本发明主要对序列化和反序列化过程做了优化工作,在PROTOBUFF技术的基础上进行了扩展,在保证其他进程收到二进制数组后能够将其转换为缓存实际数据的前提下,对二进程数组的大小和转换效率做了优化。主要目的是减少网络传输的字节数和提升转换效率,进而保证缓存同步的实时性。
对二进程数组的大小和转换效率做了优化,包括:同步消息报文中包含固定属性和可变属性,但PROTOBUFF序列化技术要求必须预先定义属性并为其分配序号。可变属性因无法预先定义,所以针对已知的固定属性key采用有序序号替代,针对可变属性将其属性key和属性值value通过普通序列化技术进行序列化,并且把序列化结果赋值给固定的属性key:data。
在进行反序列化时针对属性data对应的value采用普通序列化技术进行反序列化,其他采用PROTOBUFF反序列化。
本发明增加了进程号校验过程,在步骤5处理时,先校验步骤4的增删改数据的进程号是否与本进程一致,不一致时,说明是其他进程的同步数据,此时才执行同步处理。
本发明增加了时间戳校验,在步骤5处理时,先校验(当前系统时间戳)-(步骤4的增删改数据的时间戳)<=延时阈值(默认1秒),满足条件时才执行同步处理。
本发明基于及时性消息的发布与订阅机制,有效避免延迟数据或历史数据对缓存造成的影响本,跨进程通讯的二进制数组序列化与反序列化机制,解决了微服务集群中各节点缓存数据一致性问题。
本发明解决了微服务集群中各节点缓存数据一致性问题,充分利用了各应用节点服务器的资源,将其服务器的部分资源充当缓存服务资源。因各个服务器均保存同样的缓存数据,从而构建了一个非中心化的分布式缓存服务器。因其为进程内缓存,相比于REDIS等分布式缓存,其缓存数据读写过程的网络IO次数大幅减少,应用程序性能会大幅提升。因其为非中心化的分布式缓存服务器,相比于REDIS等分布式缓存,没有中心化带来的性能瓶颈。
图4为运行本发明实施的一种进程级缓存数据同步方法的计算机装置示意图,如图4所示,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种进程级缓存数据同步方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行实现上述一种进程级缓存数据同步方法的计算机程序。
本发明实施例中还提供了一种进程级缓存数据同步装置,如下面的实施例所述。由于该装置解决问题的原理与一种进程级缓存数据同步方法相似,因此该装置的实施可以参见一种进程级缓存数据同步方法的实施,重复之处不再赘述。
图5为本发明实施例一种进程级缓存数据同步装置示意图,如图5所示,本发明实施例还提供一种进程级缓存数据同步装置,具体实施时可以包括:
订阅关系建立模块501,用于将事件发生进程与待同步进程建立订阅关系;
进程级缓存数据获取模块502,用于获取事件发生进程的进程级缓存数据;
序列化模块503,用于将事件发生进程的进程级缓存数据序列化,确定二进制数组;
二进制数组广播模块504,用于根据订阅关系将二进制数组广播给待同步进程;
反序列化模块505,用于将二进制数组反序列化,确定同步数据;
进程级缓存数据同步模块506,用于根据同步数据,将待同步进程进行进程级缓存数据同步。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,订阅关系建立模块,具体用于:
利用REDIS的事件发布订阅机制将事件发生进程与待同步进程建立订阅关系。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,进程级缓存数据获取模块,具体用于:
在事件发生进程发生增删改操作时,获取包括增类型数据、改类型数据和删类型数据的进程级缓存数据。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,序列化模块,具体用于:
将事件发生进程的进程级缓存数据序列化,确定事件发生进程的进程级缓存数据的属性及其对应的属性值;
将进程级缓存数据的属性替换为有序序号;
将属性对应的属性值进行二进制处理,确定二进制属性值;
将有序序号与二进制属性值进行对应组装,确定二进制数组。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,二进制数组广播模块,具体用于:
事件发生进程将二进制数组向REDIS指定的消息暂存服务器消息交换通道发布;
待同步进程通过订阅关系订阅消息暂存服务器消息交换通道,获取二进制数组。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,反序列化模块,具体用于:
将二进制数组拆分为对应的有序序号和二进制属性值;
将二进制属性值转换为具体Java类型数据,确定属性值;
将有序序号转换为属性;
将属性值和属性反序列化,确定同步数据。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,进程级缓存数据同步模块,具体用于:
将同步数据按照不同操作类型,分为增类型同步数据、改类型同步数据和删类型同步数据;
将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,进程级缓存数据同步模块,还用于:
当映射数据为增类型同步数据时,将属性值和属性写入待同步进程的进程级缓存中;
当映射数据为改类型同步数据时,将属性值和属性覆盖待同步进程缓存中已有的数据;
当映射数据为删类型同步数据时,将待同步进程缓存中已有的属性删除。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,进程级缓存数据同步模块,还用于在将待同步进程进行进程级缓存数据同步之前,校验同步数据的进程号;
当同步数据的进程号与待同步进程的进程号一致时,执行进程级缓存数据同步。
具体实施本发明实施例提供的一种进程级缓存数据同步装置时,在一个实施例中,进程级缓存数据同步模块,还用于在同步数据的进程号与待同步进程的进程号一致之后,还包括:
校验同步数据时间戳;
当同步数据时间戳与当前系统时间戳之间的差值小于延时阈值时,执行进程级缓存数据同步。
综上,本发明实施例提供的一种进程级缓存数据同步方法和装置,包括:首先将事件发生进程与待同步进程建立订阅关系;然后获取事件发生进程的进程级缓存数据;继续将事件发生进程的进程级缓存数据序列化,确定二进制数组;接着根据订阅关系将二进制数组广播给待同步进程;下一步将二进制数组反序列化,确定同步数据;最后根据同步数据,将待同步进程进行进程级缓存数据同步。解决了微服务集群中各节点中进程级缓存数据一致性问题,通过跨进程通讯的二进制数组序列化与反序列化机制,减少网络传输的字节数和提升转换效率,减少进程级缓存同步的延迟时间,进而保证缓存同步的实时性,利用订阅机制的及时性特点,通过发布与订阅使微服务集群节点的扩容或缩容对事件发生进程透明,使得事件发生进程在产生进程级缓存数据时无需关注通知对象,该部分工作由订阅机制完成,及时性避免了历史消息重复消费问题。
本发明解决了微服务集群中各节点缓存数据一致性问题,充分利用了各应用节点服务器的资源,将其服务器的部分资源充当缓存服务资源。因各个服务器均保存同样的缓存数据,从而构建了一个非中心化的分布式缓存服务器。因其为进程内缓存,相比于REDIS等分布式缓存,其缓存数据读写过程的网络IO次数大幅减少,应用程序性能会大幅提升。因其为非中心化的分布式缓存服务器,相比于REDIS等分布式缓存,没有中心化带来的性能瓶颈。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种进程级缓存数据同步方法,其特征在于,包括:
将事件发生进程与待同步进程建立订阅关系;
获取事件发生进程的进程级缓存数据;
将事件发生进程的进程级缓存数据序列化,确定二进制数组;
根据订阅关系将二进制数组广播给待同步进程;
将二进制数组反序列化,确定同步数据;
根据同步数据,将待同步进程进行进程级缓存数据同步。
2.如权利要求1所述的方法,其特征在于,将事件发生进程与待同步进程建立订阅关系,包括:
利用REDIS的事件发布订阅机制将事件发生进程与待同步进程建立订阅关系。
3.如权利要求1所述的方法,其特征在于,获取事件发生进程的进程级缓存数据,包括:
在事件发生进程发生增删改操作时,获取包括增类型数据、改类型数据和删类型数据的进程级缓存数据。
4.如权利要求1所述的方法,其特征在于,将事件发生进程的进程级缓存数据序列化,确定二进制数组,包括:
将事件发生进程的进程级缓存数据序列化,确定事件发生进程的进程级缓存数据的属性及其对应的属性值;
将进程级缓存数据的属性替换为有序序号;
将属性对应的属性值进行二进制处理,确定二进制属性值;
将有序序号与二进制属性值进行对应组装,确定二进制数组。
5.如权利要求2所述的方法,其特征在于,根据订阅关系将二进制数组广播给待同步进程,包括:
事件发生进程将二进制数组向REDIS指定的消息暂存服务器消息交换通道发布;
待同步进程通过订阅关系订阅消息暂存服务器消息交换通道,获取二进制数组。
6.如权利要求1所述的方法,其特征在于,将二进制数组反序列化,确定同步数据,包括:
将二进制数组拆分为对应的有序序号和二进制属性值;
将二进制属性值转换为具体Java类型数据,确定属性值;
将有序序号转换为属性;
将属性值和属性反序列化,确定同步数据。
7.如权利要求6所述的方法,其特征在于,根据同步数据,将待同步进程进行进程级缓存数据同步,包括:
将同步数据按照不同操作类型,分为增类型同步数据、改类型同步数据和删类型同步数据;
将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步。
8.如权利要求7所述的方法,其特征在于,将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步,包括:
当映射数据为增类型同步数据时,将属性值和属性写入待同步进程的进程级缓存中;
当映射数据为改类型同步数据时,将属性值和属性覆盖待同步进程缓存中已有的数据;
当映射数据为删类型同步数据时,将待同步进程缓存中已有的属性删除。
9.如权利要求7所述的方法,其特征在于,在将待同步进程进行进程级缓存数据同步之前,校验同步数据的进程号;
当同步数据的进程号与待同步进程的进程号一致时,执行进程级缓存数据同步。
10.如权利要求9所述的方法,其特征在于,在同步数据的进程号与待同步进程的进程号一致之后,还包括:
校验同步数据时间戳;
当同步数据时间戳与当前系统时间戳之间的差值小于延时阈值时,执行进程级缓存数据同步。
11.一种进程级缓存数据同步装置,其特征在于,包括:
订阅关系建立模块,用于将事件发生进程与待同步进程建立订阅关系;
进程级缓存数据获取模块,用于获取事件发生进程的进程级缓存数据;
序列化模块,用于将事件发生进程的进程级缓存数据序列化,确定二进制数组;
二进制数组广播模块,用于根据订阅关系将二进制数组广播给待同步进程;
反序列化模块,用于将二进制数组反序列化,确定同步数据;
进程级缓存数据同步模块,用于根据同步数据,将待同步进程进行进程级缓存数据同步。
12.如权利要求11所述的装置,其特征在于,订阅关系建立模块,具体用于:
利用REDIS的事件发布订阅机制将事件发生进程与待同步进程建立订阅关系。
13.如权利要求11所述的装置,其特征在于,进程级缓存数据获取模块,具体用于:
在事件发生进程发生增删改操作时,获取包括增类型数据、改类型数据和删类型数据的进程级缓存数据。
14.如权利要求11所述的装置,其特征在于,序列化模块,具体用于:
将事件发生进程的进程级缓存数据序列化,确定事件发生进程的进程级缓存数据的属性及其对应的属性值;
将进程级缓存数据的属性替换为有序序号;
将属性对应的属性值进行二进制处理,确定二进制属性值;
将有序序号与二进制属性值进行对应组装,确定二进制数组。
15.如权利要求12所述的装置,其特征在于,二进制数组广播模块,具体用于:
事件发生进程将二进制数组向REDIS指定的消息暂存服务器消息交换通道发布;
待同步进程通过订阅关系订阅消息暂存服务器消息交换通道,获取二进制数组。
16.如权利要求11所述的装置,其特征在于,反序列化模块,具体用于:
将二进制数组拆分为对应的有序序号和二进制属性值;
将二进制属性值转换为具体Java类型数据,确定属性值;
将有序序号转换为属性;
将属性值和属性反序列化,确定同步数据。
17.如权利要求16所述的装置,其特征在于,进程级缓存数据同步模块,具体用于:
将同步数据按照不同操作类型,分为增类型同步数据、改类型同步数据和删类型同步数据;
将增类型同步数据、改类型同步数据和删类型同步数据映射至待同步进程,进行进程级缓存数据同步。
18.如权利要求17所述的装置,其特征在于,进程级缓存数据同步模块,还用于:
当映射数据为增类型同步数据时,将属性值和属性写入待同步进程的进程级缓存中;
当映射数据为改类型同步数据时,将属性值和属性覆盖待同步进程缓存中已有的数据;
当映射数据为删类型同步数据时,将待同步进程缓存中已有的属性删除。
19.如权利要求17所述的装置,其特征在于,进程级缓存数据同步模块,还用于在将待同步进程进行进程级缓存数据同步之前,校验同步数据的进程号;
当同步数据的进程号与待同步进程的进程号一致时,执行进程级缓存数据同步。
20.如权利要求19所述的装置,其特征在于,进程级缓存数据同步模块,还用于在同步数据的进程号与待同步进程的进程号一致之后,还包括:
校验同步数据时间戳;
当同步数据时间戳与当前系统时间戳之间的差值小于延时阈值时,执行进程级缓存数据同步。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任一项所述方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行实现权利要求1至10任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485989.XA CN113051091A (zh) | 2021-04-30 | 2021-04-30 | 一种进程级缓存数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485989.XA CN113051091A (zh) | 2021-04-30 | 2021-04-30 | 一种进程级缓存数据同步方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051091A true CN113051091A (zh) | 2021-06-29 |
Family
ID=76518119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110485989.XA Pending CN113051091A (zh) | 2021-04-30 | 2021-04-30 | 一种进程级缓存数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051091A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401317A (zh) * | 2023-04-19 | 2023-07-07 | 中国环球租赁有限公司 | 一种缓存数据同步方法、装置、电子设备及介质 |
CN118363884A (zh) * | 2024-04-29 | 2024-07-19 | 北京泰迪未来科技股份有限公司 | 一种分布式多级缓存方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197263A (zh) * | 2017-12-30 | 2018-06-22 | 苏州精易会信息技术有限公司 | 数据同步方法 |
CN109167819A (zh) * | 2018-08-13 | 2019-01-08 | 苏州科达科技股份有限公司 | 数据同步系统、方法、装置及存储介质 |
CN109358805A (zh) * | 2018-09-03 | 2019-02-19 | 中新网络信息安全股份有限公司 | 一种数据缓存方法 |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
-
2021
- 2021-04-30 CN CN202110485989.XA patent/CN113051091A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197263A (zh) * | 2017-12-30 | 2018-06-22 | 苏州精易会信息技术有限公司 | 数据同步方法 |
CN109167819A (zh) * | 2018-08-13 | 2019-01-08 | 苏州科达科技股份有限公司 | 数据同步系统、方法、装置及存储介质 |
CN109358805A (zh) * | 2018-09-03 | 2019-02-19 | 中新网络信息安全股份有限公司 | 一种数据缓存方法 |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
Non-Patent Citations (1)
Title |
---|
崔自峰;刘竹旺;闫修林;: "分布式系统缓存一致性设计与应用", 指挥信息系统与技术, vol. 6, no. 06, 28 December 2015 (2015-12-28), pages 105 - 110 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401317A (zh) * | 2023-04-19 | 2023-07-07 | 中国环球租赁有限公司 | 一种缓存数据同步方法、装置、电子设备及介质 |
CN116401317B (zh) * | 2023-04-19 | 2023-11-17 | 中国环球租赁有限公司 | 一种缓存数据同步方法、装置、电子设备及介质 |
CN118363884A (zh) * | 2024-04-29 | 2024-07-19 | 北京泰迪未来科技股份有限公司 | 一种分布式多级缓存方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268398B2 (en) | Storage system, recording medium for storing control program and control method for storage system | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN106919654A (zh) | 一种基于Nginx的高可用MySQL数据库的实现方法 | |
JP7549137B2 (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
WO2021036684A1 (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
CN113535656A (zh) | 数据访问方法、装置、设备及存储介质 | |
CN113051091A (zh) | 一种进程级缓存数据同步方法和装置 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
WO2023011022A1 (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN113687964A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
WO2021212493A1 (zh) | 数据同步方法、装置、数据存储系统及计算机可读介质 | |
CN113918857A (zh) | 一种提高分布式web应用系统性能的三级缓存加速方法 | |
CN112328569A (zh) | 基于Flume分布式数据收集架构的构建方法 | |
CN105989065B (zh) | 一种闪拍数据处理方法及系统 | |
CN111931105A (zh) | 一种kafka消费指定推送时间数据处理方法 | |
CN113672583B (zh) | 基于存储与计算分离的大数据多数据源分析方法及系统 | |
CN117111856A (zh) | 一种数据湖数据处理方法、装置、系统、设备及介质 | |
CN111966650B (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN113076298B (zh) | 分布式小文件存储系统 | |
CN110099117B (zh) | 一种多版本dns区文件全量下发的方法和装置 | |
Vilaça et al. | On the expressiveness and trade-offs of large scale tuple stores | |
CN110928839A (zh) | 国际运价数据的存储方法和系统 | |
CN117648297B (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 |