CN113486029A - 一种服务降级的数据补偿方法、系统及设备 - Google Patents
一种服务降级的数据补偿方法、系统及设备 Download PDFInfo
- Publication number
- CN113486029A CN113486029A CN202110722434.2A CN202110722434A CN113486029A CN 113486029 A CN113486029 A CN 113486029A CN 202110722434 A CN202110722434 A CN 202110722434A CN 113486029 A CN113486029 A CN 113486029A
- Authority
- CN
- China
- Prior art keywords
- data
- external service
- state
- message
- locked
- 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
- 230000015556 catabolic process Effects 0.000 title claims abstract description 40
- 238000006731 degradation reaction Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 241000700189 Hystrix <Rodentia> Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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
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)
- Retry When Errors Occur (AREA)
Abstract
本申请提供一种服务降级的数据补偿技术方案,该技术方案首先获取外部服务数据,并将所述外部服务数据的数据状态标记为中间态;然后当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据;还生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;接着基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;最后解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。通过该方法可实时跟踪外部服务降级时外部服务的数据状态,可保证数据更新操作的完整性及最终数据的一致性,具有高可用性。
Description
技术领域
本申请涉及计算机数据处理技术领域,尤其涉及一种服务降级的数据补偿的技术。
背景技术
随着如电商等新的应用需求的出现,对计算机数据处理的能力要求越来越高,分布式数据处理系统应运而生。分布式数据处理系统的处理能力不经与系统本身的服务能力相关,其依赖的外部服务的服务能力也很重要,外部服务的响应时长也会统计到整体的接口访问时长。若外部服务异常也会导致依赖外部服务的本服务出现异常甚至雪崩情况。因此,在分布式数据处理系统中引入服务降级组件,可以有效规避因相关服务响应异常而导致整个访问时长过长甚至雪崩,但是简单地引入服务降级组件会带来降级的服务其更新状态不可知的情况,需要对其进行补偿。
当前的服务降级补偿方法只能通过降级补偿做一些特定的查询,来查看修改或者删除操作是否执行完毕。若外部服务在查询时并未完成更新时,可能会导致查询到的是脏数据,还可能再次触发降级,而且若外部服务在本服务降级后出现异常情况,会导致无法再次发送修改或者删除数据的操作,无法确认外部服务的数据状态。
发明内容
本申请的目的是提供一种服务降级的数据补偿方法、系统及设备,用以解决现有分布式数据处理系统在外部服务降级时无法确认相关外部服务的数据状态的技术问题。
根据本申请的一个方面,提供了一种服务降级的数据补偿方法,其中,所述方法包括:
获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
可选地,在获取一条或多条外部服务数据之前,所述方法还包括:
基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,所述获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态包括:
获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
可选地,其中,所述生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态包括:
针对每条被锁定数据,生成一个消息,当消费所述消息时,以跟踪该条被锁定数据对应的外部服务的当前数据状态。
可选地,其中,所述生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态包括:
针对全部被锁定数据,生成一个消息,当消费所述消息时,以跟踪每条被锁定数据对应的外部服务的当前数据状态。
可选地,其中,在基于预设消息消费策略消费所述消息时,所述方法还包括:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
根据本申请的另一方面,还提供了一种服务降级的数据补偿系统,其中,所述系统包括:
第二模块,用于获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
第三模块,用于当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
第四模块,用于生成消息,当消费所述消息时跟踪被锁定数据对应的外部服务的当前数据状态;
第五模块,用于基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
第六模块,用于解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
可选地,所述系统还包括:
第一模块,用于基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,第二模块用于获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
可选地,其中,所述第五模块还用于:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
与现有技术相比,本申请提供一种分布式数据处理系统在服务降级中的数据补偿技术方案,该技术方案首先获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;然后当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;还生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;接着基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;最后解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。通过该方法分布式数据处理系统可实时跟踪外部服务降级时外部服务的数据状态,可保证数据更新操作的完整性及最终数据的一致性,具有高可用性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种服务降级的数据补偿方法流程图;
图2示出根据本申请另一个方面一种服务降级的数据补偿系统示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为使本申请的目的、请求保护的技术方案和效果更加明确,下面结合实施例及附图对本申请请求保护的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应属于本申请保护的范围。
在本申请实施例的典型配置中,系统各模块、设备和/或可信方可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以通过相关方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质可以包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及可选实施例,对本申请的技术方案,进行清楚和完整的描述。
图1示出本申请一个方面的一种服务降级的数据补偿方法流程图,其中,一个实施例的方法包括:
S12获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
S13当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
S14生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;
S15基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
S16解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
在本申请中,所述方法通过的设备1执行,所述设备1为安装有相应的提供分布式数据处理服务的软件的计算机设备和/或云,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、网络主机、单个网络服务器、多个网络服务器集;所述云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。
在此,所述计算机设备和/或云仅为举例,其他现有的或者今后可能出现的设备和/或资源共享平台如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
在分布式数据处理系统中,通常设备1上运行的相关软件根据客户端发出的数据更新请求等用户请求,生成前台服务响应后向客户端发送,其中,所述前台服务是指分布式数据处理系统中,用于获取到数据更新请求,进行逻辑处理,并向其他相关服务发起更新操作的服务。其中,在生成前台服务响应的过程中,可能会调用第三方提供的外部服务接口,获取外部服务数据。比如,该实施例的一个应用场景中,设备1接收到客户端发送的商品电子价签更新展示请求,其中,电子价签包括商品的商品名称、价格、折扣等与商品相关的一些信息。电子价签通常是外部数据,前台服务调用由合作第三方提供的调用接口来获取,如果设备1与合作第三方之间的网络有异常或合作第三方硬件有异常等原因,可能会导致前台服务发起调用外部数据后无法在预设时间内获取到到外部服务数据及其数据状态,导致前台服务基于预设的服务降级策略启动外部服务降级,比如,采用预设的固定数据代替外部服务的当前数据,相应生成外部服务降级下的前台服务响应后向客户端发送。同时,为了确保前台服务能获取到外部服务的数据最终状态及前台服务获取的外部服务数据与合作第三方处的外部服务数据的一致性,需要针对外部服务的相关数据进行数据补偿。
在该实施例中,在所述步骤S12中,所述设备1获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态,其中,所述中间态是用于指示对应数据在未确定是否完成更新操作的状态。比如,获取合作第三方提供的电子价签的商品名称、价格、折扣等中的一条或多条外部服务数据,并将该一条或多条外部服务数据各自的数据状态标记为中间态,比如,将商品名称、价格、折扣的数据状态标记为更新中这一中间态。
可选地,其中,在所述步骤S12之前,所述方法还包括:
S11(未示出)基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,所述步骤S12包括:
获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
当设备1接收到客户端发送的用户请求,比如,数据更新服务请求,在生成前台服务响应时,会调用合作第三方接口,向合作第三方设备发送外部服务数据更新请求,然后获取合作第三方设备基于其接收到的该外部服务数据更新请求返回的一条或多条外部服务数据,并将该一条或多条外部服务数据的数据状态标记为中间态。
其中,设备1在获取外部服务数据过程中,若在预设时间内能完整接收到外部服务数据,则正常生成前台服务响应,比如,上述实施例的一个应用场景中,设备1接收到客户端发送的商品电子价签更新展示请求,组装该商品的名称、价格、折扣等信息,记录各个数据的状态,然后向合作第三方发出外部服务数据更新请求,调用当前价格、折扣数据,接着接收合作第三方返回的商品当前价格、折扣数据状态是已更新的最新数据,并更新为最新数据后生成前台服务响应。若在预设时间内未完整接收到外部服务数据,则基于预设的服务降级策略,启动外部服务降级,生成外部服务降级的前台服务响应。设备1中可集成降级组件,比如,阿里巴巴的Sentinel、奈飞的Hystrix等降级组件,在降级组件中可结合具体应用场景的实际需求设置服务降级策略,比如,可以设置当外部服务调用超过预设时间阈值,或者外部服务不可用,或者外部服务出错等状况时,启动服务降级。
继续在所述实施例中,在所述步骤S13中,当外部服务降级,设备1锁定获取到的降级外部服务对应的外部服务数据,即未完整接收到的外部服务数据,以使所述外部服务数据无法被修改。确保数据不会被其它服务修改而导致数据错乱。
继续在所述实施例中,在所述步骤S14中,设备1还生成消息,比如生成具有高可用性的MQ(MessageQueue,消息队列)消息,当消息出队,消费该消息时,设备1跟踪被锁定数据对应的外部服务的当前数据状态。所述消息还可以是基于RocketMQ、RabbitMQ、kafka等类消息中间件生成的消息。在此,仅为举例,其他现有的或者今后可能出现的消息类型如适用于本申请也应包含在本申请的保护范围内。
可选地,其中,所述步骤14包括:
针对每条被锁定数据,生成一个消息,当消费所述消息时,以跟踪该条被锁定数据对应的外部服务的当前数据状态。
比如,上述实施例的一个应用场景中,电子价签的价格、折扣等多条外部服务数据未完整被前台服务接收到,触发服务降级后,电子价签的价格、折扣等多条外部服务数据被锁定,并针对每条被锁定的外部服务数据生成一个消息。以便后续消费消息时只需对该条被锁定数据对应的外部服务数据状态进行查询,而无需对全部被锁定数据对应的外部服务数据状态都进行查询。虽然生成多个消息,但每个消息消费时对应的数据状态查询时间短。
可选地,其中,所述步骤14包括:
针对全部被锁定数据,生成一个消息,当消费所述消息时,以跟踪每条被锁定数据对应的外部服务的当前数据状态。
比如,上述实施例的一个应用场景中,电子价签的价格、折扣等多条外部服务数据未完整被前台服务接收到,触发服务降级后,电子价签的价格、折扣等多条外部服务数据被锁定,并对服务降级对应的全部被锁定数据生成一个消息。无需针对每条被锁定数据生成多个消息,但消息被消费时是对全部被锁定数据对应的外部服务数据状态都进行查询,数据查询时间相对较长。
继续在该实施例中,在所述步骤S15中,设备1基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功,比如,从更新中调整为更新成功。
其中,可设置设备1中的消息消费策略,比如采用时间递增消费模式,当消息开始被消费,设备1跟踪与该消息对应的被锁定数据对应的外部服务的当前数据状态,若成功,即跟踪到该当前数据状态为更新成功,比如,查询到该当前数据状态为已更新或更新成功,或者查询到调用接口幂等,则将该被锁定数据的数据状态从中间态(如更新中)调整为更新成功,清除该消息;若失败,即未跟踪到该当前数据状态或跟踪到该当前数据状态不是已更新或更新成功,则根据预设的时间递增间隔,比如第一次失败1秒、10秒、30秒、1分钟、10分钟、30分钟等,不断重试,直至成功,或达到预设的最大时间间隔而超时。
其中,还可以在消息消费策略中设置最大重试次数。当根据预设的的时间递增间隔不断重试,直至成功或达到预设的最大重试次数。
可选地,其中,所述步骤S15还包括:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
其中,当设备1基于预设消息消费策略消费该消息超时,则直接清除该消息,并生成定时任务,当该定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态,然后基于预设定时任务调度策略执行该定时任务,当跟踪到所述当前数据状态为已更新或更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。比如,可在设备1中集成分布式任务调度平台xxl-job,采用xxl-job的worker机制,针对前述基于消息机制的降级服务的数据补偿失败的被锁定数据,继续进行数据补偿。当消费消息超时,则启动基于xxl-job的worker机制的降级服务的数据补偿,继续跟踪被锁定数据对应的外部服务的当前数据状态,直至相应的降级服务的数据补偿成功,或者由人工介入,对被锁定数据进行人工修改,以确保最终数据的一致性。
继续在上述实施例中,设备1在基于消息机制的对应降级服务的数据状态跟踪中,及进一步的在基于定时任务机制的对应降级服务的数据状态跟踪中,当跟踪到被锁定数据对应的外部服务的当前数据状态是更新成功,则继续在步骤S16中,解锁在步骤S13中被锁定数据,并将该数据更新为已更新成功的对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
图2示出根据本申请另一个方面的一种服务降级的数据补偿系统示意图,其中,所述系统包括:
第二模块22,用于获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
第三模块23,用于当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
第四模块24,用于生成消息,当消费所述消息时跟踪被锁定数据对应的外部服务的当前数据状态;
第五模块25,用于基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
第六模块26,用于解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
在该实施例中,所述系统用于实施前述实施例的方法,所述系统集成在与前述设备1软硬件配置环境相同的设备中。
其中,该系统的第二模块22获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。该系统的第三模块23当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,即未完整接收到的外部服务数据,以使所述外部服务数据无法被修改。该系统的第四模块24生成消息,比如生成具有高可用性的MQ(MessageQueue,消息队列)消息,当消费该消息时,可跟踪被锁定数据对应的外部服务的当前数据状态。该系统的第五模块25基于预设消息消费策略消费所述消息,比如采用时间递增消费模式消费该消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功,清除该消息;若失败,即未跟踪到该当前数据状态或跟踪到该当前数据状态不是已更新或更新成功,则根据预设的时间递增间隔,比如第一次失败1秒、10秒、30秒、1分钟、10分钟、30分钟等,不断重试,直至成功,或达到预设的最大时间间隔而超时。当跟踪到被锁定数据对应的外部服务的当前数据状态是更新成功,则该系统的第六模块26解锁在第三模块23中被锁定数据,并将该数据更新为已更新成功的对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
可选地,其中,所述系统还包括:
第一模块21(未示出),用于基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,第二模块22用于获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
其中,当系统的第一模块21接收到客户端发送的用户请求,比如,数据更新服务请求,在生成前台服务响应时,会调用合作第三方接口,向合作第三方设备发送外部服务数据更新请求,系统的第二模块22获取合作第三方设备基于其接收到的该外部服务数据更新请求返回的一条或多条外部服务数据,并将该一条或多条外部服务数据的数据状态标记为中间态。
可选地,其中,所述第五模块25还用于:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
其中,若系统的第五模块25基于预设消息消费策略消费该消息至超时,则直接清除该消息,并生成定时任务,当该定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态,然后基于预设定时任务调度策略执行该定时任务,当跟踪到所述当前数据状态为已更新或更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功,或者由人工介入,对被锁定数据进行人工修改,以确保最终数据的一致性。
根据本申请的又一方面,还提供了一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请中涉及的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备运行基于前述根据本申请的多个实施例的方法和/或技术方案。
根据本申请的还一方面,还提供了一种服务降级的数据补偿设备,其中,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功,进一步地,当消费所述消息超时,还生成定时任务,基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件和/或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种服务降级的数据补偿方法,其特征在于,所述方法包括:
获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
2.根据权利要求1所述的方法,其特征在于,在获取一条或多条外部服务数据之前,所述方法还包括:
基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,所述获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态包括:
获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
3.根据权利要求1所述的方法,其特征在于,所述生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态包括:
针对每条被锁定数据,生成一个消息,当消费所述消息时,以跟踪该条被锁定数据对应的外部服务的当前数据状态。
4.根据权利要求1所述的方法,其特征在于,所述生成消息,当消费所述消息时,跟踪被锁定数据对应的外部服务的当前数据状态包括:
针对全部被锁定数据,生成一个消息,当消费所述消息时,以跟踪每条被锁定数据对应的外部服务的当前数据状态。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在基于预设消息消费策略消费所述消息时,所述方法还包括:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
6.一种服务降级的数据补偿系统,其特征在于,所述系统包括:
第二模块,用于获取一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态;
第三模块,用于当外部服务降级,锁定获取到的降级外部服务对应的外部服务数据,以使所述外部服务数据无法被修改;
第四模块,用于生成消息,当消费所述消息时跟踪被锁定数据对应的外部服务的当前数据状态;
第五模块,用于基于预设消息消费策略消费所述消息,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功;
第六模块,用于解锁所述被锁定数据,并将该数据更新为对应的外部服务的当前数据,以实现外部服务降级的数据补偿。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
第一模块,用于基于接收到的数据更新服务请求,发送外部服务数据更新请求;
其中,第二模块用于获取外部服务基于其接收到的所述外部服务数据更新请求返回的一条或多条外部服务数据,并将所述一条或多条外部服务数据的数据状态标记为中间态。
8.根据权利要求6或7所述的系统,其特征在于,所述第五模块还用于:
当消费所述消息超时,清除所述消息;
生成定时任务,当所述定时任务被执行时跟踪被锁定数据对应的外部服务的当前数据状态;
基于预设定时任务调度策略执行所述定时任务,当跟踪到所述当前数据状态为更新成功,则将所述被锁定数据的数据状态从中间态调整为更新成功。
9.一种计算机可读介质,其特征在于,
其上存储有计算机可读指令,所述计算机可读指令被处理器执行以实现如权利要求1至5中任一项所述的方法。
10.一种用于服务降级的数据补偿的设备,其特征在于,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至5中任一项所述方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722434.2A CN113486029A (zh) | 2021-06-28 | 2021-06-28 | 一种服务降级的数据补偿方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722434.2A CN113486029A (zh) | 2021-06-28 | 2021-06-28 | 一种服务降级的数据补偿方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113486029A true CN113486029A (zh) | 2021-10-08 |
Family
ID=77936572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110722434.2A Pending CN113486029A (zh) | 2021-06-28 | 2021-06-28 | 一种服务降级的数据补偿方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486029A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032783A (zh) * | 2018-08-01 | 2018-12-18 | 杭州朗和科技有限公司 | 信息交互方法、介质、装置和计算设备 |
US20190102411A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
CN109951261A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 中间件消息传输补偿方法、装置、电子设备、存储介质 |
CN111245873A (zh) * | 2018-11-28 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 服务降级方法、装置、设备及存储介质 |
CN112115146A (zh) * | 2020-09-15 | 2020-12-22 | 北京人大金仓信息技术股份有限公司 | 数据库的数据重分布方法、装置、设备和存储介质 |
CN112187505A (zh) * | 2020-08-17 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 自适应服务降级方法、电子装置及存储介质 |
CN112732731A (zh) * | 2020-12-29 | 2021-04-30 | 京东数字科技控股股份有限公司 | 业务数据的消费方法、装置、电子设备和可读存储介质 |
-
2021
- 2021-06-28 CN CN202110722434.2A patent/CN113486029A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190102411A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
CN109032783A (zh) * | 2018-08-01 | 2018-12-18 | 杭州朗和科技有限公司 | 信息交互方法、介质、装置和计算设备 |
CN111245873A (zh) * | 2018-11-28 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 服务降级方法、装置、设备及存储介质 |
CN109951261A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 中间件消息传输补偿方法、装置、电子设备、存储介质 |
CN112187505A (zh) * | 2020-08-17 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 自适应服务降级方法、电子装置及存储介质 |
CN112115146A (zh) * | 2020-09-15 | 2020-12-22 | 北京人大金仓信息技术股份有限公司 | 数据库的数据重分布方法、装置、设备和存储介质 |
CN112732731A (zh) * | 2020-12-29 | 2021-04-30 | 京东数字科技控股股份有限公司 | 业务数据的消费方法、装置、电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288253B2 (en) | Allocation method and device for a distributed lock | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
WO2020181810A1 (zh) | 应用于集群内多级缓存的数据处理方法和装置 | |
US11080146B2 (en) | System and method for storage unavailability tolerant backup | |
US8335762B2 (en) | Resource tracking | |
EP3671462A1 (en) | System and method for consumption based tagging of resources | |
CN107040576B (zh) | 信息推送方法及装置、通讯系统 | |
CN112433885B (zh) | 区块链共识处理方法及装置、电子设备、存储介质 | |
US7870557B2 (en) | Apparatus, system, and method for autonomously maintaining a single system image in a parallel systems complex | |
CN112433921A (zh) | 用于动态埋点的方法及设备 | |
CN115470026A (zh) | 数据缓存及缓存容灾方法和系统、缓存系统 | |
CN111679892A (zh) | 分布式事务的处理方法、装置、设备及介质 | |
CN113486029A (zh) | 一种服务降级的数据补偿方法、系统及设备 | |
US11693844B2 (en) | Processing delete requests based on change feed of updates | |
CN113535477B (zh) | 一种用于数据容灾恢复的方法与设备 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN112559290B (zh) | 业务调用监控方法、装置、计算机设备和存储介质 | |
EP3879404A1 (en) | Platform for automated administration and monitoring of in-memory systems | |
CN112765129A (zh) | 一种实现数据库数据版本管理的方法与设备 | |
US20210117285A1 (en) | System and method for backup generation for deployments | |
CN106375354B (zh) | 数据处理方法及装置 | |
US20190278747A1 (en) | System and method to optimally apply local retention in a remote repository | |
CN113742414A (zh) | 共享操作系统的方法、装置、系统及计算机可读存储介质 | |
US11080151B2 (en) | Restoration of cloud management platform | |
CN111385356B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211008 |