CN119739552B - 微服务数据处理方法、装置、设备、存储介质及产品 - Google Patents

微服务数据处理方法、装置、设备、存储介质及产品

Info

Publication number
CN119739552B
CN119739552B CN202411800603.XA CN202411800603A CN119739552B CN 119739552 B CN119739552 B CN 119739552B CN 202411800603 A CN202411800603 A CN 202411800603A CN 119739552 B CN119739552 B CN 119739552B
Authority
CN
China
Prior art keywords
key value
value pair
call request
data call
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.)
Active
Application number
CN202411800603.XA
Other languages
English (en)
Other versions
CN119739552A (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.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent 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 Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202411800603.XA priority Critical patent/CN119739552B/zh
Publication of CN119739552A publication Critical patent/CN119739552A/zh
Application granted granted Critical
Publication of CN119739552B publication Critical patent/CN119739552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种微服务数据处理方法、装置、设备、存储介质及产品,涉及计算机技术领域,公开了微服务数据处理方法,包括:在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况;基于所述键值对的变化情况,确定所述数据调用请求的异常类型;确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。本申请提出一个分布式缓存,客户端在向服务端发送的数据调用请求发生异常的情况下,根据键值对的变化情况,即可确定数据调用请求发生异常的根本原因,再针对数据调用请求发生异常的根本原因执行相应的异常处理策略,以此满足微服务数据一致性的要求。

Description

微服务数据处理方法、装置、设备、存储介质及产品
技术领域
本申请涉及计算机技术领域,尤其涉及微服务数据处理方法、装置、设备、存储介质及产品。
背景技术
目前,随着计算机技术的发展,软件系统中广泛采用微服务架构,以此满足软件系统快速迭代和高并发的需求。其中微服务架构是将复杂的应用程序分解为一系列小型、自治的服务,每个服务运行在独立的进程中通过轻量级的通信机制相互协作。但是微服务架构的分布式特性也带来了数据一致性的挑战,即如何保障微服务架构的数据一致性,是目前急需解决的技术问题。
相关技术中,分布式系统的不同服务端之间通过远程调用方法进行数据交换和协同工作,以保证服务端之间的数据一致性。在该方法中,涉及客户端向服务端发送的远程调用请求异常的情况,通常采用客户端重试远程调用请求的方式进行异常处理,但是客户端重试远程调用请求的方式在服务端处理请求超时的情况下,会导致远程调用请求重复处理,从而破坏数据一致性,即该方法无法满足微服务数据一致性的要求。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种微服务数据处理方法,旨在解决相关技术中无法满足微服务数据一致性的要求的技术问题。
为实现上述目的,本申请提出一种微服务数据处理方法,应用于客户端,所述客户端与分布式缓存通信连接,所述微服务数据处理的方法包括:
在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
可选地,所述基于所述键值对的变化情况,确定所述数据调用请求的异常类型的步骤,包括:
当所述键值对的变化情况为键值对未变化,则确定所述数据调用请求的异常类型为客户端传输超时类型;
当所述键值对的变化情况为键值对不存在,则确定所述数据调用请求的异常类型为服务端处理超时类型。
可选地,所述服务端在不同情况下对所述分布式缓存中存储的键值对的处理结果,包括所述服务端在未接收到所述数据调用请求的情况下,不对所述分布式缓存中存储的键值对进行处理;或者,所述服务端在接收到所述数据调用请求的情况下,对所述分布式缓存中存储的键值对进行删除处理。
可选地,所述在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的变化情况的步骤,包括:
响应于数据调用请求,生成所述数据调用请求相应的第一时刻的键值对;
将所述第一时刻的键值对发送至所述分布式缓存,并同步将所述数据调用请求发送至相应的服务端,其中,所述服务端在不同情况下对分布式缓存中存储的第一时刻的键值对执行不同的处理;
判断所述数据调用请求是否异常,若所述数据调用请求异常,则获取所述分布式缓存的第二时刻的键值对;
将所述第一时刻的键值对和所述第二时刻的键值对进行比对,得到所述分布式缓存中相应所述数据调用请求的键值对的变化情况。
可选地,所述分布式缓存为远程键值存储服务器Redis。
可选地,所述微服务数据处理的方法还包括:
在向服务端发送的数据调用请求未发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的版本标识,其中,所述键值对的版本标识是所述服务端根据处理所述数据调用请求的服务版本,对键值对所增添的标识;
判断所述键值对的版本标识所对应的服务版本是否为异常版本;
若所述服务版本为异常版本,则确定所述异常版本的异常处理策略,并执行所述异常版本的异常处理策略,得到异常处理结果。
此外,为实现上述目的,本申请还提出一种微服务数据处理装置,所述微服务数据处理装置包括:
变化情况确定模块,用于在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
异常类型确定模块,用于基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
策略执行模块,用于确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
此外,为实现上述目的,本申请还提出一种微服务数据处理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的微服务数据处理方法的步骤。
此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的微服务数据处理方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的微服务数据处理方法的步骤。
本申请提出的一个或多个技术方案,至少具有以下技术效果:
与相关技术中分布式系统的不同服务端之间通过远程调用方法进行数据交换和协同工作,以保证服务端之间的数据一致性。在该方法中,涉及客户端向服务端发送的远程调用请求异常的情况,通常采用客户端重试远程调用请求的方式进行异常处理,但是客户端重试远程调用请求的方式在服务端处理请求超时的情况下,会导致远程调用请求重复处理,无法满足微服务数据一致性的要求相比,本申请中客户端在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;基于所述键值对的变化情况,确定所述数据调用请求的异常类型;确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。可理解的是,本申请提出一个分别与客户端和服务端通信连接的分布式缓存,在客户端向服务端发送的数据调用请求之前,向分布式缓存存入一个关于数据调用请求的键值对,客户端在向服务端发送的数据调用请求发生异常的情况下,只需要根据键值对的变化情况,即可确定服务端是否接收到客户端发送的数据调用请求,进而确定数据调用请求发生异常的根本原因,再针对数据调用请求发生异常的根本原因执行相应的异常处理策略,而非只采用单一的客户端重试远程调用请求的策略,以此满足微服务数据一致性的要求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请微服务数据处理方法第一实施例提供的流程示意图;
图2为本申请微服务数据处理方法的整体系统交互流程示意图;
图3为本申请微服务数据处理方法中客户端传输超时场景的系统交互流程示意图;
图4为本申请微服务数据处理方法中服务端处理超时场景的系统交互流程示意图;
图5为本申请微服务数据处理方法第二实施例提供的流程示意图;
图6为本申请实施例微服务数据处理装置的模块结构示意图;
图7为本申请实施例中微服务数据处理方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请的技术方案,并不用于限定本申请。
为了更好的理解本申请的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
本申请实施例的主要解决方案是:在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;基于所述键值对的变化情况,确定所述数据调用请求的异常类型;确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
由于相关技术中,分布式系统的不同服务端之间通过远程调用方法进行数据交换和协同工作,以保证服务端之间的数据一致性。在该方法中,涉及客户端向服务端发送的远程调用请求异常的情况,通常采用客户端重试远程调用请求的方式进行异常处理,但是客户端重试远程调用请求的方式在服务端处理请求超时的情况下,会导致远程调用请求重复处理,从而破坏数据一致性,即该方法无法满足微服务数据一致性的要求。
本申请提供一种解决方案,实现确定数据调用请求发生异常的根本原因,再针对数据调用请求发生异常的根本原因执行相应的异常处理策略,以此满足微服务数据一致性的要求。
从上述实施例可知,本申请提出一个分别与客户端和服务端通信连接的分布式缓存,在客户端向服务端发送的数据调用请求之前,向分布式缓存存入一个关于数据调用请求的键值对,客户端在向服务端发送的数据调用请求发生异常的情况下,只需要根据键值对的变化情况,即可确定服务端是否接收到客户端发送的数据调用请求,进而确定数据调用请求发生异常的根本原因,再针对数据调用请求发生异常的根本原因执行相应的异常处理策略,而非只采用单一的客户端重试远程调用请求的策略,以此满足微服务数据一致性的要求。
需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如平板电脑、个人电脑、手机等,或者是一种能够实现上述功能的电子设备、终端系统等。以下以客户端为例,对本实施例及下述各实施例进行说明。
基于此,本申请实施例提供了一种微服务数据处理方法,参照图1,图1为本申请微服务数据处理方法第一实施例的流程示意图。
本实施例中,所述微服务数据处理方法应用于客户端,所述客户端与分布式缓存通信连接,所述微服务数据处理的方法包括步骤S100~S300:
步骤S100,在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
需要说明的是,本申请微服务数据处理方法应用于客户端,所述客户端分别与服务端和分布式缓存通信连接,其中,所述分布式缓存优选为远程键值存储服务器Redis,Redis(Remote Dictionary Server)是一个开源的键值存储系统,通常用作数据库、缓存或消息传递系统,Redis将所有数据存储在内存中,这使得它能够提供极高的读写速度,本申请以此引入Redis作为数据一致性监督器,利用其高速内存存储特性,设计了一套轻量级的数据一致性保障机制,具体是通过Redis的简单键值操作,即可精准区分超时类型,进而采取针对性措施,既降低了复杂度又提升了数据一致性的保障效率,展现了高度的实用性和灵活性。参照图2,在客户端发起远程调用前,将请求路径作为键值对存入Redis,服务端接收请求后依据路径删除对应键值,以此标记请求的生命周期状态。
可理解的是,数据调用请求是指客户端向服务端发送的数据调用请求,包含其对数据的操作,包括但不限于读取、写入或删除;数据调用请求发生异常是指在请求过程中所发生的异常情况,如网络问题、服务端错误等,导致请求未能正常处理;分布式缓存是一种在多个节点或多个地理位置之间共享和存储数据的缓存系统,它允许跨多个服务器或服务的数据共享,本申请优选为Redis;键值对包括所述数据调用请求对应的键和其对应的值;所述键值对的变化情况指的是键值对在分布式缓存中的状态变化,包括但不限于添加、修改或删除操作,具体是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,即服务端根据客户端的请求对键值对进行处理,处理结果可能会改变缓存中键值对的内容;所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求,即客户端通过观察键值对的变化情况,可以推断服务端是否成功接收并处理了客户端的数据调用请求。
在具体实现中,以上内容描述了多个情况,包括:如果服务端成功接收并处理了请求,那么分布式缓存中的相应键值对会有所变化,这种变化可以是值的更新、键值对的添加或删除等;如果服务端没有接收到请求,或者请求处理过程中发生了异常,那么键值对可能不会有预期的变化,或者可能会有错误标记或特殊值表示请求未成功处理。本申请通过检查分布式缓存中键值对的变化,可以判断服务端是否已经处理了客户端的请求。例如,如果键值对更新了,可以认为请求已经被处理;如果键值对没有变化,则可以认为服务端未接收到客户端发送的数据调用请求。
在具体实现中,所述服务端在不同情况下对所述分布式缓存中存储的键值对的处理结果,包括所述服务端在未接收到所述数据调用请求的情况下,不对所述分布式缓存中存储的键值对进行处理;或者,所述服务端在接收到所述数据调用请求的情况下,对所述分布式缓存中存储的键值对进行删除处理。
在具体实现中,在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的变化情况的步骤,包括:
响应于数据调用请求,生成所述数据调用请求相应的第一时刻的键值对;将所述第一时刻的键值对发送至所述分布式缓存,并同步将所述数据调用请求发送至相应的服务端,其中,所述服务端在不同情况下对分布式缓存中存储的第一时刻的键值对执行不同的处理;判断所述数据调用请求是否异常,若所述数据调用请求异常,则获取所述分布式缓存的第二时刻的键值对;将所述第一时刻的键值对和所述第二时刻的键值对进行比对,得到所述分布式缓存中相应所述数据调用请求的键值对的变化情况。
在具体实现中,当用户在客户端发起数据调用请求时,客户端会生成一个与该请求相关联的键值对。这个键值对代表了请求的初始状态,并且被标记为第一时刻的键值对,客户端降第一时刻的键值对发送到分布式缓存中存储起来,同时,原始的数据调用请求也被发送到服务端,以便服务端可以处理这个请求。
在具体实现中,服务端根据是否接收到数据调用请求,来执行相应的处理,其中服务端的处理可能会导致分布式缓存中存储的第一时刻的键值对发生变化,具体地,服务端在未接收到所述数据调用请求的情况下,不对所述分布式缓存中存储的键值对进行处理;或者,所述服务端在接收到所述数据调用请求的情况下,对所述分布式缓存中存储的键值对进行删除处理。
在具体实现中,客户端判断所述数据调用请求是否异常,具体地,客户端可以通过数据调用请求发送后,未得到相应响应的时长进行判断,例如客户端发送数据调用请求后,10秒内未收到反馈,则确定所述数据调用请求异常。如果检测到数据调用请求异常,客户端会从分布式缓存中获取当前状态的键值对,这个键值对被标记为第二时刻的键值对,即第二时刻的键值对是检测到数据调用请求异常后的时间内分布式缓存中的键值对,第一时刻的键值对是客户端收到数据调用请求后存至分布式缓存中的键值对。客户端会比较第一时刻和第二时刻的键值对,以确定它们之间是否有任何变化,通过比对,客户端可以得到键值对的变化情况,这些变化可能包括值的更新、键的添加或删除等,其中变化情况可以用来判断服务端是否成功处理了数据调用请求,以及请求处理的结果是否已经反映在分布式缓存中。
步骤S200,基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
在具体实现中,客户端通过分析分布式缓存中键值对的变化情况,可以判断出数据调用请求可能遇到的异常类型。其中,所述异常类型指的是数据调用请求发生异常的根本原因。
在具体实现中,客户端基于所述键值对的变化情况,确定所述数据调用请求的异常类型的步骤,包括:
当所述键值对的变化情况为键值对未变化,则确定所述数据调用请求的异常类型为客户端传输超时类型;当所述键值对的变化情况为键值对不存在,则确定所述数据调用请求的异常类型为服务端处理超时类型。
在具体实现中,参照图3,当所述键值对的变化情况为键值对未变化,则表示服务端未收到客户端发送的数据调用请求,在服务端未收到客户端发送的数据调用请求,且数据调用请求发生异常的情况下,则可以确定所述数据调用请求的异常类型为客户端传输超时类型。在数据调用请求的异常类型为客户端传输超时类型的情况下,可以采取重试、熔断或降级策略,确保微服务数据一致性。
在具体实现中,参照图4,当所述键值对的变化情况为键值对不存在,表示服务端已收到客户端发送的数据调用请求,在服务端已收到客户端发送的数据调用请求,且数据调用请求发生异常的情况下,则可以确定所述数据调用请求的异常类型为服务端处理超时类型。在数据调用请求的异常类型为服务端处理超时类型的情况下,可以采取幂等处理或者跳过处理,确保微服务数据一致性。
步骤S300,确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
在具体实现中,在数据调用请求的异常类型为客户端传输超时类型的情况下,可以采取重试、熔断或降级策略,确保微服务数据一致性;在数据调用请求的异常类型为服务端处理超时类型的情况下,可以采取幂等处理或者跳过处理,确保微服务数据一致性。
在具体实现中,通过上述机制,客户端能精准响应各类超时场景,智能维护数据一致性,加固微服务框架的稳定性和可靠性基础。即本申请针对网络传输及服务处理时长超时的场景,实施差异化策略,确保数据的一致性。
具体地,本申请存在以下显著优势:
1、零额外框架负担:仅依托Redis,避免引入新依赖,减小系统复杂度;
2、低侵入性:无需修改业务逻辑,保持代码清晰,降低耦合;
3、易学易用:无需深入掌握复杂框架,便于快速上手;
4、超低延迟:借助Redis内存存储特性,实现近乎实时的数据处理,提升响应速度;
5、良好扩展性:基于C/S架构,便于按需扩展通道,满足未来增长需求。
与相关技术中分布式系统的不同服务端之间通过远程调用方法进行数据交换和协同工作,以保证服务端之间的数据一致性。在该方法中,涉及客户端向服务端发送的远程调用请求异常的情况,通常采用客户端重试远程调用请求的方式进行异常处理,但是客户端重试远程调用请求的方式在服务端处理请求超时的情况下,会导致远程调用请求重复处理,无法满足微服务数据一致性的要求相比,本申请中客户端在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;基于所述键值对的变化情况,确定所述数据调用请求的异常类型;确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。可理解的是,本申请提出一个分别与客户端和服务端通信连接的分布式缓存,在客户端向服务端发送的数据调用请求之前,向分布式缓存存入一个关于数据调用请求的键值对,客户端在向服务端发送的数据调用请求发生异常的情况下,只需要根据键值对的变化情况,即可确定服务端是否接收到客户端发送的数据调用请求,进而确定数据调用请求发生异常的根本原因,再针对数据调用请求发生异常的根本原因执行相应的异常处理策略,而非只采用单一的客户端重试远程调用请求的策略,以此满足微服务数据一致性的要求。
本申请在基于以上第一实施例的基础上,还提出另一实施例,参照图5,所述微服务数据处理方法包括:
步骤A100,在向服务端发送的数据调用请求未发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的版本标识,其中,所述键值对的版本标识是所述服务端根据处理所述数据调用请求的服务版本,对键值对所增添的标识;
在具体实现中,客户端向服务端发送一个请求,请求可能包含对数据的操作,如读取、写入或删除,在请求处理过程中没有出现错误或问题,请求被服务端成功接收并正常处理的情况下,客户端仍对其数据调用请求的键值对进行检查,具体是确定所述分布式缓存中相应所述数据调用请求的键值对的版本标识。其中,所述键值对的版本标识是所述服务端根据处理所述数据调用请求的服务版本,对键值对所增添的标识,服务版本指的是服务端应用程序或服务的当前版本号。具体地,服务端在成功处理请求后,会在键值对中增添一个版本标识,这个标识与服务端的版本相对应。
需要说明的是,本申请基于微服务数据一致性,还考虑到在服务端存在至少两个逻辑处理版本的场景下,例如旧版本和新版本,当服务端选取旧版本对其数据调用请求进行处理,会破坏微服务的数据一致性,具体原因包括:
1、数据模型不匹配:旧版本的服务端可能使用过时的数据模型,与当前数据模型不兼容,导致无法正确处理请求或产生错误的数据响应;
2、接口契约变化:如果客户端和服务端之间的接口契约(API)发生变化,旧版本的服务端可能无法正确解析请求或生成正确的响应;
3、并发处理问题:在高并发场景下,旧版本的服务端可能没有优化并发处理逻辑,导致数据更新时出现竞态条件,从而破坏数据一致性;
4、事务管理:微服务环境下,事务管理比单体应用更为复杂。如果旧版本的服务端没有正确实现事务管理,可能会导致部分更新成功而另一部分失败,造成数据不一致;
5、错误处理:旧版本的服务端可能没有充分的错误处理机制,导致在出现异常时无法恢复到一致的状态;
6、缺少幂等性:如果旧版本的服务端没有实现幂等性,那么在重试机制下可能会导致重复处理请求,进而破坏数据一致性。
因此为避免以上情况所造成的数据一致性破坏,本申请提出服务端成功接收并正常处理数据调用请求的情况下,服务端对客户端存储的键值对进行版本标识的增添,以此使其客户端确认其发送的数据调用请求是否被正确的版本所处理。
需要强调的是,该方法中服务端对客户端存储的键值对进行版本标识的增添,与其第一实施例中服务端接收到数据调用请求的情况下,删除其客户端存储的键值对相矛盾,因此,在第二实施例的方案中,将服务端删除键值对的方式修改为将键值对增添接收标识,也即当所述键值对的变化情况为键值对存在接收标识,则确定所述数据调用请求的异常类型为服务端处理超时类型。
步骤A200,判断所述键值对的版本标识所对应的服务版本是否为异常版本;
在具体实现中,客户端判断所述键值对的版本标识所对应的服务版本是否为异常版本,也即客户端确认其发送的数据调用请求是否被正确的版本所处理。
步骤A300,若所述服务版本为异常版本,则确定所述异常版本的异常处理策略,并执行所述异常版本的异常处理策略,得到异常处理结果。
在具体实现中,若所述服务版本为异常版本,则客户端确定所述异常版本的异常处理策略,并执行所述异常版本的异常处理策略,得到异常处理结果。具体地,异常版本的异常处理策略可以是丢弃/或取消上一数据调用请求,并显示版本过低,更新版本的提示。
需要说明的是,上述示例仅用于理解本申请,并不构成对本申请微服务数据处理方法的限定,基于此技术构思进行更多形式的简单变换,均在本申请的保护范围内。
本申请还提供一种微服务数据处理装置,请参照图6,所述微服务数据处理装置包括:
变化情况确定模块10,用于在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
异常类型确定模块20,用于基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
策略执行模块30,用于确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
可选地,所述异常类型确定模块20,包括:
客户端传输超时类型确定模块,用于当所述键值对的变化情况为键值对未变化,则确定所述数据调用请求的异常类型为客户端传输超时类型;
服务端处理超时类型确定模块,用于当所述键值对的变化情况为键值对不存在,则确定所述数据调用请求的异常类型为服务端处理超时类型。
可选地,所述变化情况确定模块10,包括:
生成模块,用于响应于数据调用请求,生成所述数据调用请求相应的第一时刻的键值对;
发送模块,用于将所述第一时刻的键值对发送至所述分布式缓存,并同步将所述数据调用请求发送至相应的服务端,其中,所述服务端在不同情况下对分布式缓存中存储的第一时刻的键值对执行不同的处理;
判断模块,用于判断所述数据调用请求是否异常,若所述数据调用请求异常,则获取所述分布式缓存的第二时刻的键值对;
比对模块,用于将所述第一时刻的键值对和所述第二时刻的键值对进行比对,得到所述分布式缓存中相应所述数据调用请求的键值对的变化情况。
可选地,所述微服务数据处理装置还包括:
版本标识确定模块,用于在向服务端发送的数据调用请求未发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的版本标识,其中,所述键值对的版本标识是所述服务端根据处理所述数据调用请求的服务版本,对键值对所增添的标识;
异常版本判断模块,用于判断所述键值对的版本标识所对应的服务版本是否为异常版本;
异常处理策略执行模块,用于若所述服务版本为异常版本,则确定所述异常版本的异常处理策略,并执行所述异常版本的异常处理策略,得到异常处理结果。
本申请提供的微服务数据处理装置,采用上述实施例中的微服务数据处理方法,能够解决微服务数据处理的技术问题。与现有技术相比,本申请提供的微服务数据处理装置的有益效果与上述实施例提供的微服务数据处理方法的有益效果相同,且所述微服务数据处理装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
本申请提供一种微服务数据处理设备,微服务数据处理设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的微服务数据处理方法。
下面参考图7,其示出了适于用来实现本申请实施例的微服务数据处理设备的结构示意图。本申请实施例中的微服务数据处理设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(Personal Digital Assistant:个人数字助理)、PAD(Portable Application Description:平板电脑)、PMP(Portable Media Player:便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的微服务数据处理设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,微服务数据处理设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM:Read Only Memory)1002中的程序或者从存储装置1003加载到随机访问存储器(RAM:Random Access Memory)1004中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有微服务数据处理设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口1006也连接至总线。通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD:Liquid Crystal Display)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置1009可以允许微服务数据处理设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的微服务数据处理设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本申请公开实施例的方法中限定的上述功能。
本申请提供的微服务数据处理设备,采用上述实施例中的微服务数据处理方法,能解决微服务数据处理的技术问题。与现有技术相比,本申请提供的微服务数据处理设备的有益效果与上述实施例提供的微服务数据处理方法的有益效果相同,且该微服务数据处理设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
应当理解,本申请公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令(即计算机程序),计算机可读程序指令用于执行上述实施例中的微服务数据处理方法。
本申请提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)、可擦式可编程只读存储器(EPROM:Erasable Programmable Read Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM:CD-Read Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency:射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是微服务数据处理设备中所包含的;也可以是单独存在,而未装配入微服务数据处理设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被微服务数据处理设备执行时,使得微服务数据处理设备:微服务数据处理。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN:Local Area Network)或广域网(WAN:Wide Area Network)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本申请提供的可读存储介质为计算机可读存储介质,所述计算机可读存储介质存储有用于执行上述微服务数据处理方法的计算机可读程序指令(即计算机程序),能够解决微服务数据处理的技术问题。与现有技术相比,本申请提供的计算机可读存储介质的有益效果与上述实施例提供的微服务数据处理方法的有益效果相同,在此不做赘述。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的微服务数据处理方法的步骤。
本申请提供的计算机程序产品能够解决微服务数据处理的技术问题。与现有技术相比,本申请提供的计算机程序产品的有益效果与上述实施例提供的微服务数据处理方法的有益效果相同,在此不做赘述。
以上所述仅为本申请的部分实施例,并非因此限制本申请的专利范围,凡是在本申请的技术构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。

Claims (10)

1.一种微服务数据处理方法,其特征在于,应用于客户端,所述客户端与分布式缓存通信连接,所述微服务数据处理方法包括:
在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
2.如权利要求1所述的微服务数据处理方法,其特征在于,所述基于所述键值对的变化情况,确定所述数据调用请求的异常类型的步骤,包括:
当所述键值对的变化情况为键值对未变化,则确定所述数据调用请求的异常类型为客户端传输超时类型;
当所述键值对的变化情况为键值对不存在,则确定所述数据调用请求的异常类型为服务端处理超时类型。
3.如权利要求1所述的微服务数据处理方法,其特征在于,所述服务端在不同情况下对所述分布式缓存中存储的键值对的处理结果,包括所述服务端在未接收到所述数据调用请求的情况下,不对所述分布式缓存中存储的键值对进行处理;或者,所述服务端在接收到所述数据调用请求的情况下,对所述分布式缓存中存储的键值对进行删除处理。
4.如权利要求1所述的微服务数据处理方法,其特征在于,所述在向服务端发送的数据调用请求发生异常的情况下,确定所述分布式缓存中所述数据调用请求的键值对的变化情况的步骤,包括:
响应于数据调用请求,生成所述数据调用请求相应的第一时刻的键值对;
将所述第一时刻的键值对发送至所述分布式缓存,并同步将所述数据调用请求发送至相应的服务端,其中,所述服务端在不同情况下对分布式缓存中存储的第一时刻的键值对执行不同的处理;
判断所述数据调用请求是否异常,若所述数据调用请求异常,则获取所述分布式缓存的第二时刻的键值对;
将所述第一时刻的键值对和所述第二时刻的键值对进行比对,得到所述分布式缓存中相应所述数据调用请求的键值对的变化情况。
5.如权利要求1所述的微服务数据处理方法,其特征在于,所述分布式缓存为远程键值存储服务器Redis。
6.如权利要求1所述的微服务数据处理方法,其特征在于,所述微服务数据处理方法还包括:
在向服务端发送的数据调用请求未发生异常的情况下,确定所述分布式缓存中相应所述数据调用请求的键值对的版本标识,其中,所述键值对的版本标识是所述服务端根据处理所述数据调用请求的服务版本,对键值对所增添的标识;
判断所述键值对的版本标识所对应的服务版本是否为异常版本;
若所述服务版本为异常版本,则确定所述异常版本的异常处理策略,并执行所述异常版本的异常处理策略,得到异常处理结果。
7.一种微服务数据处理装置,其特征在于,所述装置包括:
变化情况确定模块,用于在向服务端发送的数据调用请求发生异常的情况下,确定分布式缓存中所述数据调用请求的键值对的变化情况,其中,所述键值对是根据所述数据调用请求所生成并存储于所述分布式缓存中的,所述键值对的变化情况是指存入所述分布式缓存的键值对与所述服务端在不同情况下对所述键值对的处理结果之间的变化,所述键值对的变化情况反映了所述服务端是否接收到所述数据调用请求;
异常类型确定模块,用于基于所述键值对的变化情况,确定所述数据调用请求的异常类型;
策略执行模块,用于确定所述异常类型的异常处理策略,并执行所述异常处理策略,得到异常处理结果。
8.一种微服务数据处理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的微服务数据处理方法的步骤。
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的微服务数据处理方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的微服务数据处理方法的步骤。
CN202411800603.XA 2024-12-09 2024-12-09 微服务数据处理方法、装置、设备、存储介质及产品 Active CN119739552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411800603.XA CN119739552B (zh) 2024-12-09 2024-12-09 微服务数据处理方法、装置、设备、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411800603.XA CN119739552B (zh) 2024-12-09 2024-12-09 微服务数据处理方法、装置、设备、存储介质及产品

Publications (2)

Publication Number Publication Date
CN119739552A CN119739552A (zh) 2025-04-01
CN119739552B true CN119739552B (zh) 2026-01-30

Family

ID=95136367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411800603.XA Active CN119739552B (zh) 2024-12-09 2024-12-09 微服务数据处理方法、装置、设备、存储介质及产品

Country Status (1)

Country Link
CN (1) CN119739552B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928891A (zh) * 2019-11-08 2020-03-27 中国工商银行股份有限公司 数据一致性检测方法、装置、计算设备以及介质
CN114398343A (zh) * 2022-01-12 2022-04-26 平安普惠企业管理有限公司 数据库异常键处理方法、装置、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11811801B2 (en) * 2019-08-21 2023-11-07 Nokia Solutions And Networks Oy Anomaly detection for microservices
CN116303608A (zh) * 2023-03-16 2023-06-23 中国建设银行股份有限公司 一种应用服务的数据处理方法和装置
CN116541186A (zh) * 2023-05-09 2023-08-04 中国工商银行股份有限公司 调用请求处理方法、装置、存储介质及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928891A (zh) * 2019-11-08 2020-03-27 中国工商银行股份有限公司 数据一致性检测方法、装置、计算设备以及介质
CN114398343A (zh) * 2022-01-12 2022-04-26 平安普惠企业管理有限公司 数据库异常键处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN119739552A (zh) 2025-04-01

Similar Documents

Publication Publication Date Title
CN111555940B (zh) 客户端的测试方法、装置、电子设备及计算机可读存储介质
CN111309747A (zh) 数据同步方法、系统和装置
CN111324441A (zh) 运行环境的切换方法、装置、计算机设备和存储介质
CN111818145B (zh) 一种文件传输方法、装置、系统、设备及存储介质
CN116628085A (zh) 数据库的同步处理方法、装置、电子设备及存储介质
CN119597408A (zh) 分布式系统的事务一致性校验方法、装置、电子设备及存储介质
CN119739552B (zh) 微服务数据处理方法、装置、设备、存储介质及产品
CN112084114B (zh) 用于测试接口的方法和装置
CN115167769A (zh) 一种写入数据的方法、装置及系统
CN114816684B (zh) 业务处理方法、装置、设备、可读存储介质及产品
CN112925796A (zh) 一种写一致性控制方法、装置、设备及存储介质
CN115344301A (zh) 配置文件校验方法、装置、电子设备及存储介质
CN113434151A (zh) 一种服务部署方法、服务器和系统
CN113761056B (zh) 一种分布式业务的处理方法、装置及系统
CN111324386A (zh) 分身应用程序的启动方法、装置、电子设备及存储介质
CN117555573B (zh) 芯片烧录信息同步方法、电子设备和计算机可读介质
CN114265610B (zh) 一种小程序的热修复方法、装置以及电子设备
CN110389862B (zh) 一种数据保存方法、装置、设备及存储介质
CN119690950A (zh) 数据校验方法、装置、设备、存储介质及产品
CN114398580A (zh) 一种跨平台的录音方法、装置、电子设备及存储介质
CN120689139A (zh) 交易状态确定方法及相关设备
CN116185519A (zh) 系统配置方法、装置、电子设备和计算机可读介质
CN115687832A (zh) 资源位配置信息存储方法与资源位信息配置系统
CN119211102A (zh) 传输数据方法、装置、数据报文、节点设备及可读存储介质
CN114860283A (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