CN112632093A - 工单处理方法、设备、系统、存储介质及程序产品 - Google Patents

工单处理方法、设备、系统、存储介质及程序产品 Download PDF

Info

Publication number
CN112632093A
CN112632093A CN202011631162.7A CN202011631162A CN112632093A CN 112632093 A CN112632093 A CN 112632093A CN 202011631162 A CN202011631162 A CN 202011631162A CN 112632093 A CN112632093 A CN 112632093A
Authority
CN
China
Prior art keywords
target data
work order
processed
processing
state
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
CN202011631162.7A
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN202011631162.7A priority Critical patent/CN112632093A/zh
Publication of CN112632093A publication Critical patent/CN112632093A/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/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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本公开实施例提供一种工单处理方法、设备、系统、存储介质及程序产品,通过自动代理服务器获取待处理工单,根据待处理工单变更数据库中对应的目标数据,并记录目标数据的状态为处理状态,将待处理工单添加至消息队列中,由消息队列将待处理工单发送给工单处理终端集群中任一工单处理终端,由工单处理终端根据待处理工单对服务集群中的目标数据进行处理;工单处理终端将处理结果通过消息队列发送给自动代理服务器,自动代理服务器可根据处理结果更新数据库中目标数据的状态。本公开实施例在工单分布式处理过程中可使得数据库中的目标数据和服务集群中的目标数据保证一致性,有效避免脏数据的出现,能够稳定可靠的对工单进行有序处理。

Description

工单处理方法、设备、系统、存储介质及程序产品
技术领域
本公开的实施例涉及通信技术,尤其涉及一种工单处理方法、设备、系统、存储介质及程序产品。
背景技术
工单处理系统又称为工单管理系统,可以根据不同组织、部门和外部客户的需求,来有针对性的对一个工单进行管理、处理、维护和追踪等一系列操作。
现有的自动化工单系统通常采用分布式事务方案对工单进行分布式处理,例如2PC(Two Phase Commit,两阶段提交)方案、TCC(Try-Confirm/Cancel,尝试-确认/取消)事务、MQ(Message Queue,消息队列)事务等。但现有的自动化工单系统在对工单进行分布式处理时,无法有效的保证分布式系统的数据一致性,导致分布式系统中存在脏数据,无法稳定可靠的对工单进行有序处理。
发明内容
本公开的实施例提供一种工单处理方法、设备、系统、存储介质及程序产品,用以解决自动化工单系统数据一致性问题,以稳定可靠的对工单进行有序处理。
第一方面,本公开的实施例提供一种工单处理方法,应用于自动代理服务器,所述方法包括:
获取待处理工单,根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态;
将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理;
接收所述工单处理终端通过所述消息队列发送的处理结果;
根据所述处理结果,更新所述数据库中所述目标数据的状态。
第二方面,本公开的实施例提供一种工单处理方法,应用于工单处理终端,所述方法包括:
接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
根据所述待处理工单对服务集群中的目标数据进行处理;
将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
第三方面,本公开的实施例提供一种自动代理服务器,包括:
获取模块,用于获取待处理工单;
处理模块,用于根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态;
发送模块,用于将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理;
接收模块,用于接收所述工单处理终端通过所述消息队列发送的处理结果;
所述处理模块还用于,根据所述处理结果,更新所述数据库中所述目标数据的状态。
第四方面,本公开的实施例提供一种工单处理终端,包括:
接收模块,用于接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
处理模块,用于根据所述待处理工单对服务集群中的目标数据进行处理;
发送模块,用于将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
第五方面,本公开的实施例提供一种自动代理服务器,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如第一方面所述的方法。
第六方面,本公开的实施例提供一种工单处理终端,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如第二方面所述的方法。
第七方面,本公开的实施例提供一种工单处理系统,包括:第五方面所述的自动代理服务器、第六方面所述的工单处理终端、消息队列服务器以及服务集群。
第八方面,本公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如第一方面所述的方法。
第九方面,本公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如第二方面所述的方法。
第十方面,本公开的实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时实现如第一方面所述的方法。
第十一方面,本公开的实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时实现如第二方面所述的方法。
本公开的实施例提供的工单处理方法、设备、系统、存储介质及程序产品,通过自动代理服务器获取待处理工单,根据待处理工单变更数据库中对应的目标数据,并记录目标数据的状态为处理状态,然后将待处理工单添加至消息队列中,由消息队列将待处理工单发送给工单处理终端集群中任一工单处理终端,由工单处理终端根据待处理工单对服务集群中的目标数据进行处理;工单处理终端将处理结果通过消息队列发送给自动代理服务器,自动代理服务器可根据处理结果,更新数据库中目标数据的状态。通过自动代理服务器对数据库中对根据待处理工单变更的目标数据记录为处理状态,并在待处理工单被处理完后再根据处理结果更新数据库中目标数据的状态,从而可使得数据库中的目标数据和服务集群中的目标数据保证一致性,有效避免脏数据的出现,能够稳定可靠的对工单进行有序处理。
本公开的各种可行实施例及其技术优势将在下文详述。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开一实施例提供的工单处理系统的示意图;
图2为本公开一实施例提供的工单处理方法的流程图;
图3为本公开另一实施例提供的工单处理方法的流程图;
图4为本公开另一实施例提供的工单处理方法的流程图;
图5为本公开一实施例提供的自动代理服务器的结构图;
图6为本公开一实施例提供的工单处理终端的结构图;
图7为本公开另一实施例提供的自动代理服务器的结构图;
图8为本公开另一实施例提供的工单处理终端的结构图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
现有的自动化工单系统通常采用分布式事务方案对工单进行分布式处理,例如2PC(Two Phase Commit,两阶段提交)方案、TCC(Try-Confirm/Cancel,尝试-确认/取消)事务、MQ(Message Queue,消息队列)事务等。
例如,对于2PC方案,分为准备阶段和提交阶段,其中在准备阶段中,协调者向所有参与者发送事务内容,询问是否可以提交事务,并等待所有参与者答案,各参与者执行事务操作,将undo和redo信息记入事务日志中(不提交事务),如参与者执行成功,向协调者反馈yes,即可以提交;如执行失败,向协调者反馈no,即不可提交;而提交阶段中,如果协调者收到参与者的失败消息或者超时未收到消息,直接给每个参与者发送回滚消息,否则,发送提交消息,而参与者根据协调者发送的消息执行提交或者回滚操作,释放所有事务处理中使用的资源。
2PC方案存在以下问题:性能问题,所有参与者在事务提交阶段处于同步阻塞状态,占用系统资源,容易导致性能瓶颈;可靠性问题,如果协调者存在单点故障问题,参与者将一直处于锁定状态;数据不一致问题,在提交阶段中,如果发生局部网络问题,一部分事务参与者收到提交消息,另一部分事务参与者没收到提交消息,导致节点数据不一致。
对于TCC事务,其由来主要包括:跨数据库,数据库水平拆分带来的分布式事务,保证跨库操作的原子性;跨应用,应用拆分带来的分布式事务,保证跨应用业务操作的原子性。
TCC方案分为Try、Confirm/Cancel两个阶段。其中在Try阶段中,完成所有业务检查(一致性),预留必需的业务资源(隔离型)并尝试执行业务;而在Confirm/Cancel阶段,根据Try阶段是否全部正常执行,继续执行Confirm或Cancel,Confirm和Cancel操作满足幂等性,当Try阶段服务全部正常执行,执行Confrim确认业务逻辑操作,而当Try阶段存在服务执行失败,执行Cancel操作,释放Try阶段预留的业务资源。
TCC是应用层事务2PC,其出现是解决应用拆分带来的跨应用业务操作原子性问题,用TCC分布式事务方案来保证各个接口的调用,要么一起成功,要么一起回滚。比如互联网金融企业最核心的三个服务:交易、支付、账务。但其Try、Confirm和Cancel操作均需业务提供,开发成本高。同时在实际系统开发过程中,可能服务间的调用是异步的,也就是一个服务发送一个消息给MQ,然后另一个服务从MQ消费到一条消息进行处理。
对于MQ事务,MQ事务跨服务分为事务主动方和事务被动方,其实现流程为,主动方向MQ Server发送半(half)消息,MQ Server将消息持久化成功后,向主动放发送ack确认消息,事务主动方开始执行本地事务逻辑(比如更新数据库),并根据本地事务执行向MQServer提交二次确定,若MQ Server收到commit状态,则将半消息标记为可投递,事务被动方最终将收到消息;若MQ Server收到回滚,则删除半消息,订阅方将不会接受该消息。
MQ事务保证服务高可用最大的一个依赖点是MQ的高可用。MQ事务适用于事务中参与方支持操作幂等,对数据一致性要求不高,业务上能容忍数据不一致到一个人工检查周期,业务上有对账/校验系统兜底。
综上所述,现有的自动化工单系统基于各种分布式事务在对工单进行分布式处理时,无法有效的保证分布式系统的数据一致性,导致分布式系统中存在脏数据,无法稳定可靠的对工单进行有序处理。
为了解决上述技术问题,本公开实施例提供一种工单处理方法,能够保证分布式系统的数据一致性、且有效避免脏数据的出现,能够稳定可靠的对工单进行有序处理,基于此,本公开实施例中引入消息队列,例如kafka,kafka是一种高吞吐量的分布式发布订阅消息系统,基于其单partition(分区)特性可保证工单的顺序性,同时解耦应用异步特性可保证工单处理系统服务可扩展性;基于消息队列,可通过自动代理服务器(Autoproxy)提供接收待处理工单的API接口(Application Programming Interface,应用程序接口),接收用户发送的待处理工单(API请求),并根据待处理工单变更数据库中对应的目标数据,同时记录目标数据的状态为处理状态(也即中间态),然后将待处理工单添加至消息队列中,通过消息队列缓存消息并和后端的工单处理终端集群中任一工单处理终端进行通讯,也即将待处理工单依序发送给工单处理终端集群中任一工单处理终端,由工单处理终端根据待处理工单调用服务集群中的目标网络设备对服务集群中的目标数据进行处理;工单处理终端在处理完毕后将处理结果通过消息队列发送给自动代理服务器,自动代理服务器可根据处理结果,更新数据库中目标数据的状态。
例如,若处理结果为处理成功,则自动代理服务器将数据库中目标数据的状态更新为处理完成状态(也即最终态),此时可保证数据库中的目标数据与服务集群中的目标数据均为处理成功后的最新数据;而若处理结果为处理失败,则对目标数据执行数据回滚操作,此时数据库中的目标数据与服务集群中的目标数据均为待处理工单处理前的初始状态。通过上述过程,可使得分布式的工单处理系统中数据库中的数据和服务集群中的数据保证一致性,有效避免脏数据的出现。
自动代理服务器操作数据库是本地事务,发送待处理工单至消息队列,构成分布式事务,为MQ事务的事务主动方;而工单处理终端接收消息队列发送的待处理工单,作为MQ事务的事务被动方,而工单处理终端可操作服务集群,理论上工单处理终端又为事务协调者,待处理工单处理失败则需要进行回滚,但此情况为小概率事件,工单处理终端处不支持回滚,但作为消息队列的消费者需要支持幂等;而自动代理服务器可在待处理工单处理失败操作数据库进行回滚。
本公开实施例的工单处理方法适用于如图1所示的工单处理系统,包括自动代理服务器101、消息队列102、数据库103、工单处理终端104以及服务集群105。其中,自动代理服务器101可作为API代理,支持对服务集群105各网络服务相关控制面参数的读写,与工单处理终端104一起完成对服务集群105各网络服务相关控制面的增删改查,自动代理服务器101可以部署一个或多个,自动代理服务器101可接收待处理工单(API请求),并根据待处理工单变更数据库103中对应的目标数据,并记录目标数据的状态为处理状态,然后将待处理工单添加至消息队列102中,其中消息队列102可部署于单独的服务器,或者部署于自动代理服务器101、工单处理终端104中;自动代理服务器101通过消息队列102与工单处理终端集群连接,工单处理终端集群中包括多个工单处理终端104,也即工单处理终端104可从消息队列102消费待处理工单,而工单处理终端104与服务集群105通信连接,可根据待处理工单对服务集群105中的目标数据进行处理,其中服务集群105可包括但不限于数据网关集群、DNS(Domain Name System,域名系统)集群、NAT(Network Address Translation,网络地址转换)集群等。进一步的,工单处理终端104在对待处理工单处理完成后可将处理结果通过消息队列102发送给自动代理服务器101,自动代理服务器101可根据处理结果,更新数据库103中目标数据的状态。
下面以具体地实施例对本公开的实施例的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例的实施例进行描述。
图2为本发明实施例提供的工单处理方法流程图。本实施例提供了一种工单处理方法,其执行主体为自动代理服务器(Autoproxy),或者其他能够实现本方法的设备亦可,该工单处理方法具体步骤如下:
S201、获取待处理工单,根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态。
在本实施例中,自动代理服务器可作为API代理,支持对服务集群各网络服务相关控制面参数的读写,可接收用户通过网络向API接口发送的工单,其中不同的接口可接收不同类型的或不同功能的工单。此外自动代理服务器还需支持分布式事务的操作性,同时多机房的集中控制,还需保证系统的高可用性。
自动代理服务器本地事务可分为Try阶段和Confirm/Cancel阶段。其中Try阶段可在完成数据库校验后,根据待处理工单变更数据库中对应的目标数据,并记录目标数据的状态为处理状态(中间态),其中数据库中对应的目标数据为待处理工单要在服务集群中操作的目标数据(目标字段)。而Confirm/Cancel阶段则是在将待处理工单添加至消息队列中后由工单处理终端处理后返回处理结果后进行,具体的可根据数据库中目标数据的状态、以及处理结果是否成功来执行Confirm或Cancel,其中Confirm和Cancel依赖数据库原生操作支持幂等,若处理结果为处理成功,则自动代理服务器将数据库中目标数据的状态更新为处理完成状态(也即最终态);而若处理结果为处理失败,则对目标数据执行数据回滚操作。此外,自动代理服务器可基于golang channel机制实现机房并发,具体的,针对多机房不同工单处理终端特性,依赖golang channel机制,实现机房和集群并发,提高接口吞吐量,机房间操作不受影响。
S202、将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理。
在本实施例中,自动代理服务器在完成在数据库中记录目标数据的状态为处理状态后,将待处理工单添加到消息队列中,由消息队列依次将添加到消息队列中的各待处理工单发送给工单处理终端集群中任一工单处理终端,以由工单处理终端根据待处理工单对服务集群中的目标数据进行处理。
其中,消息队列可以为Kafka,当然也可以为其他消息队列。以Kafka为例,Kafka中的待处理工单以partition(分区)为最小存储单元,同一partition内的待处理工单存储可保证顺序性。在将待处理工单发送给Kafka时,可设定待处理工单发送至同一个topic(主题),且此topic只有一个partition,保证待处理工单存储的顺序性。相应的,工单处理终端作为Kafka的消费者,多个工单处理终端可分别构成不同的消费者群组,一个群组里的消费者订阅同一个topic的待处理工单,每个消费者对应消费一个partition。当以群组消费同一个topic、同一个partition时,若消费者数量大于partition数量,多余的消费者可以闲置,保证工单消费的顺序性。
此外,在消费者群组中同一时刻有且仅有一个消费者,也即有且仅有一个工单处理终端消费消息队列中的待处理工单;而在消费待处理工单后,可通过分布式锁来进一步保证工单的唯一性执行。
进一步的,工单处理终端在接收到消息队列发送的待处理工单时,根据待处理工单对服务集群中的目标数据进行处理,具体的,可调用代理模块来操作服务集群的网络设备处理待处理工单,也即根据待处理工单对服务集群中的目标数据进行处理,其中服务集群的网络设备包括但不限于数据网关集群、DNS集群、NAT集群等。
S203、接收所述工单处理终端通过所述消息队列发送的处理结果。
在本实施例中,在待处理工单处理完毕后,工单处理终端可将处理结果通过消息队列发送给自动代理服务器,也即自动代理服务器可从消息队列获取到工单处理终端对于待处理工单处理的处理结果。
S204、根据所述处理结果,更新所述数据库中所述目标数据的状态。
在本实施例中,在获取到工单处理终端对于待处理工单处理的处理结果,可进一步执行上述的Confirm/Cancel阶段,也即根据处理结果,更新数据库中所述目标数据的状态。
具体的,例如,若处理结果为处理成功,则自动代理服务器将数据库中目标数据的状态更新为处理完成状态(也即最终态),此时可保证数据库中的目标数据与服务集群中的目标数据均为处理成功后的最新数据;而若处理结果为处理失败,则对目标数据执行数据回滚操作,此时数据库中的目标数据与服务集群中的目标数据均为待处理工单处理前的初始状态。通过上述过程,可使得分布式的工单处理系统中数据库中的数据和服务集群中的数据保证一致性,有效避免脏数据的出现。
此外,可选的,若在第一预设时间内未接收到所述处理结果,说明工单处理终端很可能对待处理工单处理失败,则对数据库中的目标数据执行数据回滚操作;或者,若确定将所述待处理工单添加至消息队列的过程失败,也即发送给消息队列的过程即已失败,则工单处理终端根本不可能根据待处理工单对服务集群中的目标数据进行处理,也即服务集群中的目标数据仍为初始状态,因此对数据库中的目标数据执行数据回滚操作,使数据库中的目标数据也回滚到待处理工单处理前的初始状态。
本实施例提供的工单处理方法,通过自动代理服务器获取待处理工单,根据待处理工单变更数据库中对应的目标数据,并记录目标数据的状态为处理状态,然后将待处理工单添加至消息队列中,由消息队列将待处理工单发送给工单处理终端集群中任一工单处理终端,由工单处理终端根据待处理工单对服务集群中的目标数据进行处理;工单处理终端将处理结果通过消息队列发送给自动代理服务器,自动代理服务器可根据处理结果,更新数据库中目标数据的状态。通过自动代理服务器对数据库中对根据待处理工单变更的目标数据记录为处理状态,并在待处理工单被处理完后再根据处理结果更新数据库中目标数据的状态,从而可使得数据库中的目标数据和服务集群中的目标数据保证一致性,有效避免脏数据的出现,能够稳定可靠的对工单进行有序处理。
在上述任一实施例的基础上,所述自动代理服务器有多个;上述实施例中S201所述根据所述待处理工单变更数据库中对应的目标数据,包括:
若所述数据库中目标数据未被加锁,则对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则等待所述目标数据的锁被释放后,对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则不执行变更所述目标数据。
在本实施例中,自动代理服务器有多个,多个自动代理服务器可同时接收待处理工单,但涉及对公共资源也即数据库的竞争,为了在多个自动代理服务器的情况下保证自动代理服务器的高可用性(High Availability,HA),可对数据库增加分布式锁机制。其中高可用性指的是通过尽量缩短因日常操作和突发的系统崩溃所导致的停机时间,以提高系统和应用的可用性。具体的,同一时间仅能由一个自动代理服务器对数据库中目标数据进行操作,操作时对目标数据进行加锁,其他自动代理服务器无法对目标数据进行操作,只能等待锁释放再对目标数据操作,或者直接不操作。可选的,本实施例中可通过数据库事务或ETCD实现分布式锁,其中ETCD是一个分布式、可靠key-value(键-值)存储的分布式系统。具体实现分布式锁的过程此处不做限制。
在上述任一实施例的基础上,如图3所示,所述方法还包括:
S301、通过监控线程监控所述数据库中各目标数据的状态,并查找所述数据库中处于处理状态时间超过第二预设时间的第一目标数据;
S302、根据所述第一目标数据,查找所述服务集群中对应的第二目标数据;
S303、根据所述第二目标数据,更新所述数据库中所述第一目标数据的状态。
本实施例中,为了进一步保证数据库中的目标数据和服务集群中的目标数据的一致性,在自动代理服务器中增加了监控线程和自愈线程,其中监控线程用于监控数据库中各目标数据的状态,尤其是监控处于处理状态的目标数据,查找其中处于处理状态时间超过第二预设时间的第一目标数据,也即该第一目标数据长时间处于处理状态,未被变更成处理完成状态,也未被回滚,对于此类第一目标数据极大可能与服务集群中对应的目标数据(记为第二目标数据)不一致,因此可通过自愈线程去查找服务集群中对应的第二目标数据,判断第二目标数据是否已经由工单处理终端根据待处理工单进行过处理,从而根据第二目标数据,更新数据库中所述第一目标数据的状态。
具体的,根据所述第二目标数据,判断对应的待处理工单是否已处理成功;若对应的待处理工单已处理成功,则说明第二目标数据已被工单处理终端进行变更成功,但工单处理终端未能成功向自动代理服务器返回处理结果,或者自动代理服务器在接收到工单处理终端返回的处理结果后未更新数据库中对应的第一目标数据的状态,此种情况下,将所述数据库中所述第一目标数据的状态更新为处理完成状态;或者,若对应的待处理工单未处理成功,则说明第二目标数据未被工单处理终端变更成功,则此时为了使数据库中的第一目标数据与第二目标数据保持一致,对所述第一目标数据执行数据回滚操作。
在上述实施例的基础上,监控线程还可在监控到系统出现严重错误时进行报警,采取人工干预,对于工单处理终端,当监控到错误类型为集群中某台服务更新失败时,可进行通过短信和/或邮件等方式进行报警,由人工介入;此外,还可依赖监控线程、网络流量采集模块,提供对业务网络异常流量的监控,基于open-falcon(一种基于golang和python的监控系统)改造监控线程,例如每10s收集一次数据清洗后发送消息队列,当发生异常流量例如无效流量时,可进行报警,并支持人工更新数据,以实际业务方需求为标准。
图4为本发明实施例提供的工单处理方法流程图。本实施例提供了一种工单处理方法,其执行主体为工单处理终端集群中的任一工单处理终端,该工单处理方法具体步骤如下:
S401、接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
S402、根据所述待处理工单对服务集群中的目标数据进行处理;
S403、将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
在本实施例中所述的工单处理方法为上述实施例中工单处理终端侧的方法流程,其实现原理和技术效果可参见上述实施例,此处不再赘述。
在上述实施例的基础上,所述接收消息队列发送的待处理工单,包括:
接收所述消息队列发送的预设主题的多个待处理工单,所述多个待处理工单按照时间排序;
所述根据所述待处理工单对服务集群中的目标数据进行处理,包括:
按照时间顺序依次根据所述多个待处理工单对服务集群中的目标数据进行处理。
在上述实施例的基础上,S402所述根据所述待处理工单对服务集群中的目标数据进行处理,具体可包括:
若所述服务集群中的目标数据或对应的服务设备未被加锁,则对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则等待锁被释放后,对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则不执行对服务集群中的目标数据的处理。
在本实施例中,由于多个工单处理终端可能同时对服务集群中的同一目标数据进行操作,涉及对服务集群的竞争,为了保证高可用性,可对服务集群中的目标数据或对应的服务设备(数据网关、DNS、NAT等)被加锁,具体的,同一时间仅能由一个工单处理终端对服务集群中目标数据或目标服务设备进行操作,操作时对目标数据或目标服务设备进行加锁,其他工单处理终端无法对目标数据进行操作,只能等待锁释放再对目标数据操作,或者直接不操作。可选的,本实施例中可通过数据库事务或ETCD实现分布式锁。具体实现分布式锁的过程此处不做限制。
在上述任一实施例的基础上,工单处理系统的高可用性主要表现在当工单处理系统的数量发生变化时,工单处理系统仍可稳定的提供服务。具体的,上述的消费者群组中多余消费者被闲置,讨论工单处理系统增加或减少的情况:
当工单处理系统增加时,立即触发消息队列集群的消费再均衡,消费消息队列中待处理工单的消费者将重新选举,会发生工单重复执行情况。结合上述的锁机制及工单执行需要消耗一定时间,如果此时正在执行消费的消费者A已经消费了消息1并开始执行工单,此时添加了新的消费者B,触发再均衡,消费者B获得消息,而A中的工单仍在执行,offset(消息偏移量,用于定位消息的位置)未提交,锁未释放,此时消费者B会仍会消费消息1并等待消费者A释放锁,再次执行工单。针对此种情况,只需在工单处理系统执行工单时添加幂等性保证即可。
当工单处理系统减少时,等待session.Timeout时长后触发消息队列集群再均衡,消费消息的消费者将重新选举,会发生工单重复消费情况,但不会丢失工单。假设消费者A消费消息后执行工单,未提交offset,触发再均衡后消费者B按照partition中维护的消费者A崩溃前最后一次提交的offset消费消息,产生重复消费,再次执行工单。针对此种情况,也只需在工单处理系统执行工单时添加幂等性保证即可。
此外,工单处理系统的高可用性还表现在待处理工单消费的稳定性。具体的,待处理工单的消费以消费者群组机制,首先,消息消费以offset维护,可规避最新的offset(offsetNewest)带来的数据丢失及最旧的offset(offsetOldest)带来的数据重复消息问题。同时,消息消费的offset由消息队列自身维护,而非本地数据库维护,减少工单执行依赖,增加待处理工单消费的稳定性,从而保证工单处理系统的高可用。
图5为本发明实施例自动代理服务器的结构图。本实施例提供的自动代理服务器可以执行自动代理服务器侧的工单处理方法实施例提供的处理流程,如图5所示,所述自动代理服务器500包括:获取模块501、处理模块502、发送模块503、以及接收模块504。
获取模块501,用于获取待处理工单;
处理模块502,用于根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态;
发送模块503,用于将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理;
接收模块504,用于接收所述工单处理终端通过所述消息队列发送的处理结果;
所述处理模块502还用于,根据所述处理结果,更新所述数据库中所述目标数据的状态。
在上述任一实施例的基础上,所述自动代理服务器有多个;所述处理模块502在根据所述待处理工单变更数据库中对应的目标数据时,用于:
若所述数据库中目标数据未被加锁,则对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则等待所述目标数据的锁被释放后,对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则不执行变更所述目标数据。
在上述任一实施例的基础上,所述处理模块502在根据所述处理结果,更新所述数据库中所述目标数据的状态时,用于:
若所述处理结果为处理成功,则将所述数据库中所述目标数据的状态更新为处理完成状态;或者
若所述处理结果为处理失败,则对所述目标数据执行数据回滚操作。
在上述任一实施例的基础上,所述处理模块502还用于:
若在第一预设时间内未接收到所述处理结果,则对所述目标数据执行数据回滚操作;或者
若确定将所述待处理工单添加至消息队列的过程失败,则对所述目标数据执行数据回滚操作。
在上述任一实施例的基础上,所述自动代理服务器还包括:
监控模块,用于通过监控线程监控所述数据库中各目标数据的状态,并查找所述数据库中处于处理状态时间超过第二预设时间的第一目标数据;根据所述第一目标数据,查找所述服务集群中对应的第二目标数据;
自愈模块,用于根据所述第二目标数据,更新所述数据库中所述第一目标数据的状态。
在上述任一实施例的基础上,所述自愈模块在根据所述第二目标数据,更新所述数据库中所述第一目标数据的状态时,用于:
根据所述第二目标数据,判断对应的待处理工单是否已处理成功;
若对应的待处理工单已处理成功,则将所述数据库中所述第一目标数据的状态更新为处理完成状态;或者
若对应的待处理工单未处理成功,则对所述第一目标数据执行数据回滚操作。
本发明实施例提供的自动代理服务器可以具体用于执行上述图2-3所提供的自动代理服务器侧的方法实施例,具体功能此处不再赘述。
图6为本发明实施例工单处理终端的结构图。本实施例提供的工单处理终端可以执行工单处理终端侧的方法实施例提供的处理流程,如图6所示,所述工单处理终端600包括:接收模块601、处理模块602、以及发送模块603。
接收模块601,用于接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
处理模块602,用于根据所述待处理工单对服务集群中的目标数据进行处理;
发送模块603,用于将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
在上述任一实施例的基础上,所述处理模块602在根据所述待处理工单对服务集群中的目标数据进行处理时,用于:
若所述服务集群中的目标数据或对应的服务设备未被加锁,则对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则等待锁被释放后,对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则不执行对服务集群中的目标数据的处理。
在上述任一实施例的基础上,所述接收模块601在接收消息队列发送的待处理工单时,用于:
接收所述消息队列发送的预设主题的多个待处理工单,所述多个待处理工单按照时间排序;
所述处理模块602在根据所述待处理工单对服务集群中的目标数据进行处理时,用于:
按照时间顺序依次根据所述多个待处理工单对服务集群中的目标数据进行处理。
本发明实施例提供的工单处理终端可以具体用于执行上述图4所提供的工单处理终端侧的方法实施例,具体功能此处不再赘述。
图7为本发明实施例提供的自动代理服务器的结构示意图。本发明实施例提供的自动代理服务器可以执行自动代理服务器侧的工单处理方法实施例提供的处理流程,如图7所示,自动代理服务器70包括存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行以上实施例所述的自动代理服务器侧的工单处理方法。
图7所示实施例的自动代理服务器可用于执行上述自动代理服务器侧的工单处理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明实施例提供的工单处理终端的结构示意图。本发明实施例提供的工单处理终端可以执行工单处理终端侧的工单处理方法实施例提供的处理流程,如图8所示,工单处理终端80包括存储器81、处理器82、计算机程序和通讯接口83;其中,计算机程序存储在存储器81中,并被配置为由处理器82执行以上实施例所述的工单处理终端侧的工单处理方法。
图8所示实施例的工单处理终端可用于执行上述工单处理终端侧的工单处理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
另外,本实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的自动代理服务器侧的方法。
另外,本实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的工单处理终端侧的方法。
另外,本实施例还提供一种计算机程序产品,包括计算机执行指令,所述计算机执行指令被处理器执行以实现上述实施例所述的自动代理服务器侧的方法。
另外,本实施例还提供一种计算机程序产品,包括计算机执行指令,所述计算机执行指令被处理器执行以实现上述实施例所述的工单处理终端侧的方法。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开的实施例旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (16)

1.一种工单处理方法,其特征在于,应用于自动代理服务器,所述方法包括:
获取待处理工单,根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态;
将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理;
接收所述工单处理终端通过所述消息队列发送的处理结果;
根据所述处理结果,更新所述数据库中所述目标数据的状态。
2.根据权利要求1所述的方法,其特征在于,所述自动代理服务器有多个;所述根据所述待处理工单变更数据库中对应的目标数据,包括:
若所述数据库中目标数据未被加锁,则对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则等待所述目标数据的锁被释放后,对所述目标数据进行加锁,根据所述待处理工单变更所述目标数据,并在所述目标数据变更完毕后释放锁;或者
若所述数据库中目标数据被其他自动代理服务器加锁,则不执行变更所述目标数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述处理结果,更新所述数据库中所述目标数据的状态,包括:
若所述处理结果为处理成功,则将所述数据库中所述目标数据的状态更新为处理完成状态;或者
若所述处理结果为处理失败,则对所述目标数据执行数据回滚操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若在第一预设时间内未接收到所述处理结果,则对所述目标数据执行数据回滚操作;或者
若确定将所述待处理工单添加至消息队列的过程失败,则对所述目标数据执行数据回滚操作。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
通过监控线程监控所述数据库中各目标数据的状态,并查找所述数据库中处于处理状态时间超过第二预设时间的第一目标数据;
根据所述第一目标数据,查找所述服务集群中对应的第二目标数据;
根据所述第二目标数据,更新所述数据库中所述第一目标数据的状态。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二目标数据,更新所述数据库中所述第一目标数据的状态,包括:
根据所述第二目标数据,判断对应的待处理工单是否已处理成功;
若对应的待处理工单已处理成功,则将所述数据库中所述第一目标数据的状态更新为处理完成状态;或者
若对应的待处理工单未处理成功,则对所述第一目标数据执行数据回滚操作。
7.一种工单处理方法,其特征在于,应用于工单处理终端,所述方法包括:
接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
根据所述待处理工单对服务集群中的目标数据进行处理;
将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
8.根据权利要求7所述的方法,其特征在于,所述根据所述待处理工单对服务集群中的目标数据进行处理,包括:
若所述服务集群中的目标数据或对应的服务设备未被加锁,则对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则等待锁被释放后,对所述目标数据或对应的服务设备进行加锁,根据所述待处理工单对服务集群中的目标数据进行处理,并在处理更完毕后释放锁;或者
若所述服务集群中的目标数据或对应的服务设备被加锁,则不执行对服务集群中的目标数据的处理。
9.根据权利要求7或8所述的方法,其特征在于,所述接收消息队列发送的待处理工单,包括:
接收所述消息队列发送的预设主题的多个待处理工单,所述多个待处理工单按照时间排序;
所述根据所述待处理工单对服务集群中的目标数据进行处理,包括:
按照时间顺序依次根据所述多个待处理工单对服务集群中的目标数据进行处理。
10.一种自动代理服务器,其特征在于,包括:
获取模块,用于获取待处理工单;
处理模块,用于根据所述待处理工单变更数据库中对应的目标数据,并记录所述目标数据的状态为处理状态;
发送模块,用于将所述待处理工单添加至消息队列中,以由所述消息队列将所述待处理工单发送给工单处理终端集群中任一工单处理终端,由所述工单处理终端根据所述待处理工单对服务集群中的目标数据进行处理;
接收模块,用于接收所述工单处理终端通过所述消息队列发送的处理结果;
所述处理模块还用于,根据所述处理结果,更新所述数据库中所述目标数据的状态。
11.一种工单处理终端,其特征在于,包括:
接收模块,用于接收消息队列发送的待处理工单,其中所述待处理工单是由自动代理服务器获取、并变更数据库中对应的目标数据、记录目标数据的状态为处理状态后添加至消息队列中;
处理模块,用于根据所述待处理工单对服务集群中的目标数据进行处理;
发送模块,用于将处理结果通过所述消息队列发送给所述自动代理服务器,以使所述自动代理服务器根据所述处理结果更新数据库中所述目标数据的状态。
12.一种自动代理服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1-6任一项所述的方法。
13.一种工单处理终端,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求7-9任一项所述的方法。
14.一种工单处理系统,其特征在于,包括:如权利要求12所述的自动代理服务器、如权利要求13所述的工单处理终端、消息队列服务器以及服务集群。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如权利要求1-6或7-9任一项所述的方法。
16.一种计算机程序产品,包括计算机执行指令,其特征在于,该计算机执行指令被处理器执行时实现权利要求1-6或7-9任一项所述的方法。
CN202011631162.7A 2020-12-30 2020-12-30 工单处理方法、设备、系统、存储介质及程序产品 Pending CN112632093A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011631162.7A CN112632093A (zh) 2020-12-30 2020-12-30 工单处理方法、设备、系统、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011631162.7A CN112632093A (zh) 2020-12-30 2020-12-30 工单处理方法、设备、系统、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN112632093A true CN112632093A (zh) 2021-04-09

Family

ID=75289760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011631162.7A Pending CN112632093A (zh) 2020-12-30 2020-12-30 工单处理方法、设备、系统、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN112632093A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113298675A (zh) * 2021-06-04 2021-08-24 长沙市到家悠享家政服务有限公司 一种用于家政服务的自动化平台的处理方法、装置和系统
CN113407556A (zh) * 2021-07-13 2021-09-17 南方电网数字电网研究院有限公司 基于消息队列的数据异步更新方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113298675A (zh) * 2021-06-04 2021-08-24 长沙市到家悠享家政服务有限公司 一种用于家政服务的自动化平台的处理方法、装置和系统
CN113407556A (zh) * 2021-07-13 2021-09-17 南方电网数字电网研究院有限公司 基于消息队列的数据异步更新方法及装置

Similar Documents

Publication Publication Date Title
WO2018103318A1 (zh) 分布式事务处理方法和系统
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
CN102831156B (zh) 一种云计算平台上的分布式事务处理方法
US8954391B2 (en) System and method for supporting transient partition consistency in a distributed data grid
US20050038772A1 (en) Fast application notification in a clustered computing system
EP2207096A1 (en) Distributed transactional recovery system and method
US20120239620A1 (en) Method and system for synchronization mechanism on multi-server reservation system
US7694178B2 (en) Method, apparatus and computer program product for transaction recovery
CN109753364A (zh) 一种基于网络的分布式锁的实现方法、设备及介质
CN112039970B (zh) 一种分布式业务锁服务方法、服务端、系统及存储介质
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium
CN110413687B (zh) 基于节点互证校验的分布式事务故障处理方法及相关设备
US10540344B2 (en) Utilizing nonce table to resolve concurrent blockchain transaction failure
CN110968603B (zh) 一种数据访问方法及装置
CN112632093A (zh) 工单处理方法、设备、系统、存储介质及程序产品
US20150019620A1 (en) High availability for communications based on remote procedure calls
CN107038192B (zh) 数据库容灾方法和装置
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
US20060282524A1 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
US20120054775A1 (en) Message processing
EP3146430A1 (en) System and method for supporting a distributed data structure in a distributed data grid
CN111414356A (zh) 数据存储方法、装置、非关系数据库系统及存储介质
CN111653052B (zh) 收银系统及收银机切换方法
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
CN111708617A (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