CN114168636A - 基于缓存一致性的数据处理方法、装置、设备及存储介质 - Google Patents

基于缓存一致性的数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114168636A
CN114168636A CN202111504077.9A CN202111504077A CN114168636A CN 114168636 A CN114168636 A CN 114168636A CN 202111504077 A CN202111504077 A CN 202111504077A CN 114168636 A CN114168636 A CN 114168636A
Authority
CN
China
Prior art keywords
data
operated
bit
cache
server
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
Application number
CN202111504077.9A
Other languages
English (en)
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.)
Chengdu New Hope Finance Information Co Ltd
Original Assignee
Chengdu New Hope Finance Information 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 Chengdu New Hope Finance Information Co Ltd filed Critical Chengdu New Hope Finance Information Co Ltd
Priority to CN202111504077.9A priority Critical patent/CN114168636A/zh
Publication of CN114168636A publication Critical patent/CN114168636A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种基于缓存一致性的数据处理方法、装置、设备及存储介质。应用于应用服务器,该方法包括:接收客户端发送的数据写请求,数据写请求包括待操作数据;删除缓存服务器中与待操作数据对应的缓存数据,并判断Zookeeper服务器中对应的第一标记位是否被修改,第一标记位用于标识待操作数据是否处于写入中;若第一标记位未被修改,则将第一标记位和应用服务器中待操作数据对应的第二标记位进行修改,并将待操作数据写入到主库中,利用主库将待操作数据同步至数据库服务器的从库;若第一标记位被修改,则对数据写请求进行阻塞。通过设置第一标记位和第二标记位来对数据写请求进行处理,从而保证数据库和缓存的一致性。

Description

基于缓存一致性的数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种基于缓存一致性的数据处理方法、装置、设备及存储介质。
背景技术
Zookeeper是一个开源的分布式协调应用服务,基于Zookeeper可以实现分布式系统中的数据发布/订阅、分布式协调、同步等功能,通过多节点部署的方式实现了数据的高可用,提升了数据处理的速度,但在分布式系统中数据的缓存一致性需要得到保证,一致性一般指对于数据的每个读操作必须返回最后写入此位置的值,但由于请求的并发,导致同时多个请求在对同一数据进行操作,从而导致数据库和缓存中的数据不一致。
为了解决如上问题,在互联网技术中提出了“缓存双删”方案,也就是:在数据库的写请求到达服务器时,服务器先删除缓存中的数据,然后修改数据库,在一定时间的延迟后,再次删除缓存,从而保证数据库和缓存的一致性。但由于延迟时间的难以确定,也有可能在写请求删除缓存后,还未写入数据库之前,若一个读请求先读到旧的数据,并将其填入缓存,同样会出现数据不一致的问题。
发明内容
本申请实施例的目的在于提供一种基于缓存一致性的数据处理方法、装置、设备及存储介质,用以解决数据库和缓存的数据一致性问题。
第一方面,本申请实施例提供一种基于缓存一致性的数据处理方法,应用于应用服务器,所述应用服务器分别和Zookeeper服务器、缓存服务器以及数据库服务器连接,所述方法包括:接收客户端发送的数据写请求,所述数据写请求包括待操作数据;删除所述缓存服务器中与所述待操作数据对应的缓存数据,并判断所述Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改,所述第一标记位用于标识所述待操作数据是否处于写入中;若所述第一标记位未被修改,则将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库;若所述第一标记位被修改,则对所述数据写请求进行阻塞。
本申请实施例中,首先接收客户端发送的数据写请求,写请求中包括待操作数据,首先删除缓存中的缓存数据,然后通过判断Zookeeper服务器中存储的待操作数据对应的第一标记位是否被修改,第一标识位用于标识该待操作数据是否处于写入中,并将第一标记位和服务内存中的第二标记位进行修改,第二标记位用于在服务内存中标记,与第一标记位的作用相同,然后进行同步数据,若被修改,则对数据写请求进行阻塞。通过第一标记位和第二标记位的状态来判断当前数据是否存在数据写请求进行处理,保证当前待操作数据在任何时间内只有一个数据写请求对其修改,从而保证了数据库和缓存中的数据一致性。
进一步地,接收所述客户端发送的用于读取待读取数据的数据读请求;若根据所述数据读请求从所述缓存服务器中未读取到所述待读取数据对应的缓存数据,则从所述从库中读取所述待读取数据,并判断所述应用服务器的服务内存中所述待读取数据对应的第三标记位是否被修改;若是,则不更新所述缓存服务器中所述待读取数据对应的缓存数据;若否,则将所述待读取数据更新至所述缓存数据中。
本申请实施例中,通过接收客户端发送的用于读取待读取数据的数据读请求,若根据数据读请求从缓存服务器中未读取到待读取数据对应的缓存数据,则从数据库的从库中读取该待读取数据,并判断应用服务器中的服务内存中该待读取数据对应的第三标记位是否被修改,第三标记位是待读取数据在服务内存中的标记位,若修改则不更新缓存服务器中的缓存数据,若未被修改则将该待读取数据更新到缓存数据中。通过判断第三标记位是否被修改来确定是否更新缓存数据,从而在数据写请求正在进行处理的过程中避免了因读取到数据库中存的旧值去更新缓存数据而导致的数据不一致问题。
进一步地,在将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库之后,所述方法还包括:对所述第一标记位和所述第二标记位进行复位。
本申请实施例中,在将待操作数据写入到数据库主库以及同步从库之后,还可以对第一标记位和第二标记位进行复位。通过复位可以将第一标记位和第二标记位恢复至未修改状态,这是为了在执行完写入待操作数据之后,能够继续执行下一个数据写请求,避免数据写请求被阻塞。
进一步地,所述应用服务器上运行有日志监听服务,所述将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库,包括:将所述待操作数据写入到所述主库中,并生成更新日志;若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中。
本申请实施例中,由于应用服务器上运行有日志监听服务,通过将该待操作数据写入到主库中,并生成更新日志,当日志监听服务监听到该更新日志时,则根据该更新日志将待操作数据同步到从库中。通过日志监听服务监听更新日志的方式,可以将待操作数据的写入操作和同步操作进行分离,只要生成该待操作数据的更新日志就可以记录下来待操作数据的写入操作,后续的同步步骤可以利用日志监听服务异步进行,也能够达到数据的最终一致性效果,并提升了应用的性能。
进一步地,在若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中之后,所述方法还包括:获取所述待操作数据的同步结果,所述同步结果为所述待操作数据同步到所述从库执行成功与否的结果;若所述同步结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
本申请实施例中,在通过更新日志同步待操作数据至从库之后,还可以获取该写入数据的同步结果,该同步结果为待操作数据同步到从库执行成功与否的结果,若该同步结果为不成功时,也对该第一标记位和第二标记位进行复位。通过在执行同步结果未成功时对第一标记位和第二标记位进行复位,从而能够实现当出现同步失败的结果,就直接将该数据写请求执行结束,避免后续的数据写请求因上一写请求未结束而被阻塞导致程序崩溃。
进一步地,获取所述数据写请求的执行结果,所述执行结果为所述数据写请求执行成功与否的结果;若所述执行结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
本申请实施例中,数据写请求也会出现执行不成功的结果,当数据写请求出现执行不成功的结果时,能够及时地结束该数据写请求,对第一标记位和第二标记位进行复位,从而能够尽快进入下一数据写请求的执行流程,提升数据的处理速度。
进一步地,所述应用服务器中运行有标记位监听服务,所述将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,包括:若所述标记位监听服务监听到所述第一标记位发生修改时,将所述第二标记位与所述第一标记位进行同步修改。
本申请实施例中,由于应用服务器中还运行有标记位监听服务,用于在第一标记位发生修改时,对第二标记位和第一标记位进行同步修改。通过标记位监听服务来进行同步修改,能够促使第一标记位和第二标记位的修改较为及时,保障程序运行正常。
第二方面,本申请实施例一种基于缓存一致性的数据处理装置,所述装置包括:接收模块,用于接收客户端发送的数据写请求,所述数据写请求包括待操作数据;判断模块,用于删除所述缓存服务器中与所述待操作数据对应的缓存数据,并判断Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改;标记位未修改模块,用于若所述第一标记位未被修改,则将所述第一标记位和应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库;标记位修改模块,用于若所述第一标记位被修改,则对所述数据写请求进行阻塞。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的交互;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种基于缓存一致性的数据处理方法流程示意图;
图2为本申请实施例提供的另一种基于缓存一致性的数据处理方法流程示意图;
图3为本申请实施例提供的一种基于缓存一致性的数据处理装置结构示意图;
图4为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在介绍本申请实施例提供的基于缓存一致性的数据处理方法之前,先介绍本申请实施例中所涉及的一些概念:
分布式系统:由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机服务节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
Zookeeper:一种分布式系统协调服务,提供了各个服务节点向协调中心注册地址的方式,从而能够实现各个服务节点的通信。
负载均衡(Load Balance):将处理任务分摊到多个服务节点进行执行。避免服务器的单点故障问题。
强一致性:指的是任何时刻任何请求都可以从系统中获取到最近一次成功更新的数据或者读不到有效数据。确保数据的准确性。
弱一致性:指的是当更新操作完成后,系统不保证后续操作的访问都会返回最新的更新过的值,也不保证在多久后能访问到最新的更新过的值。
事务:数据库中操作的一个执行单元,例如在人员管理系统中,删除一个人员,既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。
图1为本申请实施例提供的一种基于缓存一致性的数据处理方法流程示意图,如图1所示,该方法可以应用于应用服务器中,该应用服务器为部署分布式系统的服务器,可以包括多个服务节点,用于完成整个分布式系统的协调运作。该方法包括:
步骤101:接收客户端发送的数据写请求,所述数据写请求包括待操作数据。
在具体的实施过程中,在分布式系统中,客户端发送的数据写请求,通过负载均衡的方式落到应用服务器的一个服务节点上执行,数据写请求可以为对待操作数据的更新、插入、删除操作,本申请不对数据写请求的具体操作类型进行限定。例如待操作数据为订单编号为1的订单状态,数据写请求可以为在订单服务系统中对该订单状态由未完成修改为已完成。
步骤102:删除所述缓存服务器中与所述待操作数据对应的缓存数据,并判断所述Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改。
在具体的实施过程中,由于缓存服务器中存储的数据为临时数据,首先删除缓存服务器中存储的与该待操作数据对应的缓存数据进行删除,而Zookeeper作为分布式系统协调服务,每个服务节点均在Zookeeper中存储着一个唯一的路径标识,通过该路径标识可以确定对应服务节点的待操作数据的数据内存。第一标记位可以为Zookeeper服务器中存储的该服务节点的待操作数据中的一个Boolean值,用于标记当前是否存在写请求对待操作数据进行操作,例如第一标记位为true(第一标记位未被修改),作为初始状态,不存在数据写请求操作数据,第一标记位为false(第一标记位被修改),则标识当前待操作数据处于写入流程中,还可以将Boolean值的含义进行交换。
步骤103:若所述第一标记位未被修改,则将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库。
在具体的实施过程中,根据前文阐述,若第一标记位未被修改,则说明当前没有数据写请求对待操作数据进行写入,那么可以执行该待操作数据的数据写请求。首先将第一标记位和第二标记位进行修改,第二标记位用于标识在接收到用于读取待操作数据的数据读请求时是否可以利用该待操作数据更新缓存数据,与第一标记位对应,第二标记位可以为应用服务器的服务节点的服务内存中存储的待操作数据中的一个Boolean值,包括true和false两种状态,用于标记未修改状态和修改状态。这是为了防止在执行数据写请求时,数据库中的数据还未写入完成,数据写请求读取到数据库中原先的值并将其更新到缓存中,避免数据出现不一致。然后将待操作数据写入到数据库中的主库中,以及利用主库将该带操作数据同步至数据库的从库中,在完成更新操作和同步操作之后,才能认为该数据库操作的事务完成。如果事务完成失败,则需要对该事务进行回滚,确保数据的强一致性。
步骤104:若所述第一标记位被修改,则对所述数据写请求进行阻塞。
在具体的实施过程中,根据上文阐述,第一标记位被修改时,说明当前具有在先的数据写请求对待操作数据进行写入,则对该数据写请求进行阻塞,保证待操作数据在同一时间下只能由一个数据写请求进行写入,避免并发请求导致的数据不一致。
在上述实施例的基础上,接收所述客户端发送的用于读取待读取数据的数据读请求;若根据所述数据读请求从所述缓存服务器中未读取到所述待读取数据对应的缓存数据,则从所述从库中读取所述待读取数据,并判断所述应用服务器的服务内存中所述待读取数据对应的第三标记位是否被修改;若是,则不更新所述缓存服务器中所述待读取数据对应的缓存数据;若否,则将所述待读取数据更新至所述缓存数据中。
在具体的实施方式中,数据库中采用主从复制的部署方式,主库负责接收数据库的写请求,用于更新数据,从库为主库的备份,用于接收读请求,从而实现数据库的读写分离,提高数据库的应用性能。
待读取数据可以为上述的待操作数据,在此种情况下,应用服务器的服务内存中该待读取数据对应的第三标记位也就是上述待操作数据对应的第二标记位。也就是说,在对待操作数据执行数据写请求的同时也可以同时进行读取操作,为了保证该待操作数据读取过程中的一致性,可以判断当前应用服务器内的服务内存中该待操作数据的第二标记位是否被修改,如第二标记位被修改,则表明当前待操作数据处于写入中,前面已经删除了该待操作数据的缓存数据,为了使读取请求不影响数据库和缓存的数据一致性,则不将该待操作数据更新至缓存中。如未被修改,则表明当前待操作数据没有处于写入中,那么直接将数据更新到缓存中即可,这时不会影响数据库和缓存的数据一致性。
如待读取数据并不是上述的待操作数据,则也可根据该待读取数据的第三标记位判断是否需要将该待读取数据更新至缓存中,其中的原因与上述一致,这里不再赘述。
在上述实施例的基础上,在将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库之后,所述方法还包括:
对所述第一标记位和所述第二标记位进行复位。
在具体的实施过程中,复位可以为对第一标记位和第二标记位恢复至未被修改的初始状态,在执行完写请求之后,可以认为该数据写请求的事务执行成功,通过将第一标记位和第二标记位进行复位,则可以解除下一数据写请求的阻塞状态,从而可以继续执行下一数据写请求,保障应用服务器中写请求的正常执行。
在上述实施例的基础上,所述应用服务器上运行有日志监听服务,所述将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库,包括:
将所述待操作数据写入到所述主库中,并生成更新日志;
若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中。
在具体的实施过程中,日志监听服务可以是应用服务器提供的同步服务,例如在非强一致性场景下,并不需要主库和从库均同步到了数据才认为本次事务提交成功,通过日志监听服务可以监听数据库中主库的binlog日志。binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,主要作用于数据库的主从复制和数据的增量恢复。例如更改数据库表和更改内容的SQL语句都会记录到binlog里,将binlog日志同步至日志监听服务中,也可以认为后续从库从主库这里同步到了待操作数据,适用于弱一致性的应用场景中,能够有效提高数据库读写的性能。
在上述实施例的基础上,在若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中之后,所述方法还包括:
获取所述待操作数据的同步结果,所述同步结果为所述待操作数据同步到所述从库执行成功与否的结果;
若所述同步结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
在具体的实施过程中,待操作数据的同步结果为同步至从库的执行结果,例如在从库同步的过程中,可能出现一些误操作或者网络不正常的情况下,导致从库同步失败或超时,在强一致性的应用场景中,由于数据写请求中的同步操作未执行成功,因此该数据写请求执行失败,可能导致事务回滚。若数据写请求执行失败,则将该第一标记位和第二标记位进行复位,同样是为了避免后续的数据写请求一直处于阻塞状态,从而导致应用异常现象。
在上述实施例的基础上,获取所述数据写请求的执行结果,所述执行结果为所述数据写请求执行成功与否的结果;
若所述执行结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
在具体的实施过程中,数据写请求也有可能出现执行失败的情况,例如,网络异常或者数据库异常导致写入不成功,则应当将该第一标记位和第二标记位进行复位,从而使得其他的数据写请求能够正常执行,以及数据读请求能够正常从数据库中读取数据,并且能够将数据回写至缓存中。
在上述实施例的基础上,所述应用服务器中运行有标记位监听服务,所述将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,包括:
若所述标记位监听服务监听到所述第一标记位发生修改时,将所述第二标记位与所述第一标记位进行同步修改。
在具体的实施过程中,应用服务器中运行有标记位监听服务,该标记位监听服务用于监听第一标记位和第二标记位的同步修改。例如,当数据写请求的操作执行完毕后,修改Zookeeper中的第一标记位,当标记位监听服务监听到该第一标记位发生修改时,标记位监听服务会将应用服务器中各个服务节点的服务内存中的第二标记位进行同步修改,保持第二标记位与第一标记位一致,因而在此之后的数据读请求,没有命中缓存中的数据,在读到数据库中的数据后,会将其同步到缓存中;而在此之后的数据写请求在读到第一标记位被复位之后,也可以继续执行数据写请求的流程,从而实现数据的一致性。
图2为本申请实施例提供的另一种基于缓存一致性的数据处理方法流程示意图,如图2所示,具体流程可以介绍为数据写请求和数据读请求的同步执行,主要执行步骤分为两个方面,写请求和读请求,读请求的步骤前面用D进行标注,例如D201表示读请求的第一个步骤。
写请求的具体实施方式可以为:
步骤201:接收客户端的用于写入待操作数据的写请求;
步骤202:删除待操作数据对应的缓存数据;
步骤203:判断Zookeeper中待操作数据对应的第一标记位是否被修改;
其中,若未被修改,则修改第一标记位;若第一标记位被修改,则将该写请求进行阻塞;
步骤204:修改应用服务器中待操作数据在应用服务器中的第二标记位;
步骤205:将待操作数据写入数据库的主库中,利用主库将待操作数据同步至从库中;
步骤206:完成同步后,将第一标记位复位;
步骤207:将第二标记位复位;
步骤208:若写请求或同步执行失败,也将该第二标记位复位。
读请求的具体实施方式可以为:
D201:接收客户端的用于读取待操作数据的读请求;
D202:先从缓存中读取;
D203:若未读取到,则继续从数据库的从库中读取;
D204:根据应用服务器中待操作数据对应的第二标记位判断是否回写;
其中,若第二标记位未被修改,则将待操作数据回写至缓存中;若第二标记位被修改,则不回写。
图3为本申请实施例提供的基于缓存一致性的数据处理装置的结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。本申请实施例提供了一种基于缓存一致性的数据处理装置,该装置包括:
接收模块301,用于接收客户端发送的数据写请求,所述数据写请求包括待操作数据;
判断模块302,用于删除所述缓存服务器中与所述待操作数据对应的缓存数据,并判断Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改,所述第一标记位用于标识所述待操作数据是否处于写入中;
标记位未修改模块303,用于若所述第一标记位未被修改,则将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库;
标记位修改模块304,用于若所述第一标记位被修改,则对所述数据写请求进行阻塞。
在上述实施例的基础上,所述装置还包括读请求操作模块,用于:
接收所述客户端发送的用于读取待读取数据的数据读请求;
若根据所述数据读请求从所述缓存服务器中未读取到所述待读取数据对应的缓存数据,则从所述从库中读取所述待读取数据,并判断所述应用服务器的服务内存中所述待读取数据对应的第三标记位是否被修改;
若是,则不更新所述缓存服务器中所述待读取数据对应的缓存数据;
若否,则将所述待读取数据更新至所述缓存数据中。
在上述实施例的基础上,所述应用服务器上运行有日志监听服务。
在上述实施例的基础上,标记位修改模块303具体用于:
将所述待操作数据写入到所述主库中,并生成更新日志;
若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中。
在上述实施例的基础上,所述装置还包括同步结果判断模块,用于:
获取所述待操作数据的同步结果,所述同步结果为所述待操作数据同步到所述从库执行成功与否的结果;
若所述同步结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
在上述实施例的基础上,该装置还包括执行结果判断模块,用于:
获取所述数据写请求的执行结果,所述执行结果为所述数据写请求执行成功与否的结果;
若所述执行结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
在上述实施例的基础上,所述应用服务器中运行有标记位监听服务。
在上述实施例的基础上,该装置还包括标记位监听模块,用于:
若所述标记位监听服务监听到所述第一标记位发生修改时,将所述第二标记位与所述第一标记位进行同步修改。
图4为本申请实施例提供的电子设备实体结构示意图,如图4所示,所述电子设备,包括:处理器(processor)401、存储器(memory)402和总线403;其中,
所述处理器401和存储器402通过所述总线403完成相互间的交互;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的基于缓存一致性的数据处理方法。
处理器401可以是一种集成电路芯片,具有信号处理能力。上述处理器401可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器402可以包括但不限于随机存取存储器(Random Acc·ess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的基于缓存一致性的数据处理方法。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的基于缓存一致性的数据处理方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或交互连接可以是通过一些交互接口,装置或单元的间接耦合或交互连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于缓存一致性的数据处理方法,其特征在于,应用于应用服务器,所述应用服务器分别和Zookeeper服务器、缓存服务器以及数据库服务器连接,包括:
接收客户端发送的数据写请求,所述数据写请求包括待操作数据;
删除所述缓存服务器中与所述待操作数据对应的缓存数据,并判断所述Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改,所述第一标记位用于标识所述待操作数据是否处于写入中;
若所述第一标记位未被修改,则将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库;
若所述第一标记位被修改,则对所述数据写请求进行阻塞。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的用于读取待读取数据的数据读请求;
若根据所述数据读请求从所述缓存服务器中未读取到所述待读取数据对应的缓存数据,则从所述从库中读取所述待读取数据,并判断所述应用服务器的服务内存中所述待读取数据对应的第三标记位是否被修改;
若是,则不更新所述缓存服务器中所述待读取数据对应的缓存数据;
若否,则将所述待读取数据更新至所述缓存数据中。
3.根据权利要求1所述的方法,其特征在于,在将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库之后,所述方法还包括:
对所述第一标记位和所述第二标记位进行复位。
4.根据权利要求1所述的方法,其特征在于,所述应用服务器上运行有日志监听服务,所述将所述待操作数据写入到数据库服务器的主库中,并利用所述主库将所述待操作数据同步至所述数据库服务器的从库,包括:
将所述待操作数据写入到所述主库中,并生成更新日志;
若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中。
5.根据权利要求4所述的方法,其特征在于,在若所述日志监听服务监听到所述更新日志,根据所述更新日志将所述待操作数据同步到所述从库中之后,所述方法还包括:
获取所述待操作数据的同步结果,所述同步结果为所述待操作数据同步到所述从库执行成功与否的结果;
若所述同步结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述数据写请求的执行结果,所述执行结果为所述数据写请求执行成功与否的结果;
若所述执行结果为不成功时,将所述第一标记位和所述第二标记位进行复位。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述应用服务器中运行有标记位监听服务,所述将所述第一标记位和所述应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,包括:
若所述标记位监听服务监听到所述第一标记位发生修改时,将所述第二标记位与所述第一标记位进行同步修改。
8.一种基于缓存一致性的数据处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的数据写请求,所述数据写请求包括待操作数据;
判断模块,用于删除缓存服务器中与所述待操作数据对应的缓存数据,并判断Zookeeper服务器中存储的所述待操作数据对应的第一标记位是否被修改,所述第一标记位用于标识所述待操作数据是否处于写入中;
标记位未修改模块,用于若所述第一标记位未被修改,则将所述第一标记位和应用服务器的服务内存中所述待操作数据对应的第二标记位进行修改,并将所述待操作数据写入到数据库服务器的主库中,利用所述主库将所述待操作数据同步至所述数据库服务器的从库;
标记位修改模块,用于若所述第一标记位被修改,则对所述数据写请求进行阻塞。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-7任一项所述的方法。
CN202111504077.9A 2021-12-10 2021-12-10 基于缓存一致性的数据处理方法、装置、设备及存储介质 Pending CN114168636A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111504077.9A CN114168636A (zh) 2021-12-10 2021-12-10 基于缓存一致性的数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111504077.9A CN114168636A (zh) 2021-12-10 2021-12-10 基于缓存一致性的数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114168636A true CN114168636A (zh) 2022-03-11

Family

ID=80485212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111504077.9A Pending CN114168636A (zh) 2021-12-10 2021-12-10 基于缓存一致性的数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114168636A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115374131A (zh) * 2022-07-12 2022-11-22 中国电信股份有限公司 请求处理方法及系统、存储介质、电子设备
CN117667964A (zh) * 2024-01-26 2024-03-08 阿里云计算有限公司 数据处理方法、装置、设备、数据库及计算机程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115374131A (zh) * 2022-07-12 2022-11-22 中国电信股份有限公司 请求处理方法及系统、存储介质、电子设备
CN117667964A (zh) * 2024-01-26 2024-03-08 阿里云计算有限公司 数据处理方法、装置、设备、数据库及计算机程序产品

Similar Documents

Publication Publication Date Title
US11604597B2 (en) Data processing method and apparatus
CN109739935B (zh) 数据读取方法、装置、电子设备以及存储介质
US6078930A (en) Multi-node fault-tolerant timestamp generation
US8464101B1 (en) CAS command network replication
US8392680B1 (en) Accessing a volume in a distributed environment
US8301600B1 (en) Failover recovery in a distributed data store
KR101602312B1 (ko) 데이터 송신 방법, 데이터 수신 방법, 및 저장 장치
US8977593B1 (en) Virtualized CG
CN114168636A (zh) 基于缓存一致性的数据处理方法、装置、设备及存储介质
CN110196680B (zh) 数据处理方法、装置及存储介质
US10726042B2 (en) Replication control using eventually consistent meta-data
US20130166505A1 (en) Monitoring replication lag between geographically dispersed sites
US11748215B2 (en) Log management method, server, and database system
CN112506710B (zh) 分布式文件系统数据修复方法、装置、设备及存储介质
CN116917880A (zh) 分布式数据库远程备份
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN110489491B (zh) 一种适用于a/b网双集群的全量数据同步装置
CN115617908A (zh) 一种MySQL数据同步方法、装置、数据库终端、介质及系统
CN110121712B (zh) 一种日志管理方法、服务器和数据库系统
CN112417043A (zh) 数据处理系统及方法
CN111404737A (zh) 一种容灾处理方法以及相关装置
CN114756408A (zh) 元数据备份恢复方法、装置、电子设备及存储介质
CN114265900A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115698955A (zh) 事务镜像的容错
CN114930315A (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