CN106777026A - 支持微服务架构事务最终一致性的方法、装置及系统 - Google Patents

支持微服务架构事务最终一致性的方法、装置及系统 Download PDF

Info

Publication number
CN106777026A
CN106777026A CN201611123186.5A CN201611123186A CN106777026A CN 106777026 A CN106777026 A CN 106777026A CN 201611123186 A CN201611123186 A CN 201611123186A CN 106777026 A CN106777026 A CN 106777026A
Authority
CN
China
Prior art keywords
message
queue
call
daily record
service
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.)
Granted
Application number
CN201611123186.5A
Other languages
English (en)
Other versions
CN106777026B (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.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network 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 Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201611123186.5A priority Critical patent/CN106777026B/zh
Publication of CN106777026A publication Critical patent/CN106777026A/zh
Application granted granted Critical
Publication of CN106777026B publication Critical patent/CN106777026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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/25Integrating or interfacing systems involving database management systems

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)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种支持微服务架构事务最终一致性的方法、装置及系统。其中,用于发送端的支持微服务架构事务最终一致性的方法,包括:发起服务调用,记录日志,当日志写入动作时,定时检查未发起服务调用或者超过指定时间未收到返回结果日志,发送调用请求;接收回执消息,查询日志记录,根据日志状态判断调用处理是否完成,若调用处理中,调用返回结果,根据返回结果调用相应业务接口,继续发起服务调用,再通过用于消息队列服务以及用于接收端的支持微服务架构事务最终一致性的方法,实现通过日志以及消息队列对服务进行异步数据调用,最终实现服务间数据的最终一致性。

Description

支持微服务架构事务最终一致性的方法、装置及系统
技术领域
本发明涉及微服务领域,具体而言,涉及一种支持微服务架构事务最终一致性的方法、装置及系统。
背景技术
目前,在互联网开发的环境下,统一的大应用系统已经不能满足日益增长的扩展性需求。为了提高系统的运行速度,以及支持灵活的动态扩展,业务系统一般会被拆分为多个微服务,即每个服务仅提供相对独立的部分功能,实现通过部署新的服务方式进行系统的功能扩展,同时在系统的压力过大时,可以更精确地扩展需要增加的服务,避免其它服务占用不必要的系统资源。
一次业务服务的调用过程,可能会经过多个应用系统,而原有单个应用系统在运行时,不同应用模块间是通过数据库保证事务的一致性,即同时修改成功,一旦失败后会回滚全部应用操作的数据。然而,采用微服务的架构方式,无法再依赖数据库实现事务的一致性,存在各个应用系统间的调用问题。
在微服务架构下,应用系统通过服务接口调用的方式访问其他应用。具体地说,在服务调用的方式下,从A应用发起一次业务请求,可能需要调用B应用、C应用等多个应用的服务,为了保证事务的一致性,如果调用C应用失败,B应用系统的数据无法回滚而产生错误,这时可以通过A应用的业务逻辑在此调用B应用的方向服务,但是,会带来两个问题:一方面,导致业务逻辑的复杂度高,容易出现错误;另一方面,如果A应用、B应用或者C应用出现宕机时,可能导致数据无法回滚,最终无法保证数据的一致性。
在微服务架构下,各应用系统间的业务相对独立,即业务的数据也相 对独立,因此,不需要保证数据的实时一致性,只要保证数据的最终一致性即可,具体地说,当A系统调用B系统服务时,可以先完成A系统的数据持久化,B系统可以异步修改自己的数据,如果出现错误时,根据错误产生的原因重新执行B系统业务动作,或者调用A系统的反向操作,回退A系统的数据,实现A系统、B系统间的数据的最终一致性,同时不会影响A系统的执行速度。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的一个目的在于提出了一种用于发送端的支持微服务架构事务最终一致性的方法。
本发明的另一个目的在于提出了一种用于消息队列服务的支持微服务架构事务最终一致性的方法。
本发明的又一个目的在于提出了一种用于接收端的支持微服务架构事务最终一致性的方法。
本发明的又一个目的在于提出了一种用于发送端的支持微服务架构事务最终一致性的装置。
本发明的又一个目的在于提出了一种用于消息队列服务的支持微服务架构事务最终一致性的装置。
本发明的又一个目的在于提出了一种用于接收端的支持微服务架构事务最终一致性的装置。
本发明的再一个目的在于提出了一种支持微服务架构事务最终一致性的系统。
有鉴于此,本发明提出了一种支持微服务架构事务最终一致性的方法,用于发送端,发送端通过消息队列服务与接收端进行交互,包括:步骤102,发起服务调用,记录日志,并实时存储日志数据至日志数据库;步骤104,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断调用请求是否成功发送;在调用请求成功发送时,进行步骤106,以调用消息队列服务;步骤106,接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,进行步骤108;以及若调用为处理中,进行步骤110;步骤108,不作处理;步骤110,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,返回步骤102。
本发明提供的用于发送端的支持微服务架构事务最终一致性的方法,通过发起服务调用,记录日志,并实时存储日志数据至日志数据库,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断调用请求是否成功发送,在调用请求成功发送时,以调用消息队列服务,通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。
进一步地,通过接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证调用服务失败后,发起方业务数据的回滚,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
根据本发明上述的支持微服务架构事务最终一致性的方法,还可以具有如下附加的技术特征:
在上述技术方案中,优选地,还包括:步骤112,在调用请求未成功发送时,返回步骤102。
在该技术方案中,在调用请求未成功发送时,通过重新发起服务调用,以支持发生错误时的重新处理,再通过记录日志,并实时存储日志数据至日志数据库,并等待重新发送调用请求,以调用消息队列服务,使得服务调用更加及时、有效,完善了服务调用机制,保证业务调用一定被执行,进一步地保证服务调用的可靠性。
在上述技术方案中,优选地,步骤102,具体包括:业务系统服务的业务代码调用远程服务接口时,拦截调用远程服务接口;生成全局唯一的事务ID,并记录事务ID;实时存储日志数据至日志数据库,并记录日志的调用 状态为未调用。
在该技术方案中,业务系统服务的业务代码调用远程服务接口时,通过拦截调用远程服务接口,生成全局唯一的事务ID,并记录事务ID,保证不同的应用系统生成不同的ID,以及相同的应用系统在每次服务调用时生成的ID不重复。进一步地,通过实时存储日志数据至日志数据库,并记录日志的调用状态为未调用,实现通过事务ID查询日志记录,就可以查询到调用状态为未调用的日志,查询速度快,进而可以快速判断日志状态,使得回执处理更加及时、有效,完善了服务调用机制,进一步地保证服务调用的可靠性。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过各种不同的日志数据,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速根据日志状态判断调用处理是否完成,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚,进一步地保证服务调用的可靠性。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解日志的相关调用信息,实现及时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,进而调用消息队列服务。进一步地,方便查询日志记录,使得回执处理更加及时、有效,完善了服务调用机制,同时进一步地保证服务调用的可靠性。
本发明还提出一种支持微服务架构事务最终一致性的方法,用于消息队列服务,发送端通过消息队列服务与接收端进行交互,包括:步骤202,接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列;步骤204,管理消息队列,以及监听到执行队列收到消息后,发送所述消息;步骤206,接收所述消息,根据消息查询日志记录,判断消息日志状态;若消息日志状态为处理中或日志不存在,进行步骤208;若消息日志状态为成功或者失败,进行步骤210;步骤208,根据消息调用业务系统服务,判断业务系统服 务是否调用成功及调用失败原因类型;若业务系统服务调用成功或者业务原因调用失败,进行步骤210;若业务系统服务非业务原因调用失败,进行步骤226;步骤210,通知回执队列,并将返回结果放入回执队列的实时队列中;
步骤212,监听到回执队列收到包含返回结果的消息后,发送回执消息;步骤214,接收回执消息,发送给发送端,并返回处理结果;步骤216,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,进行步骤218;若发送成功,进行步骤224;步骤218,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,进行步骤220;若回执队列不存在下级延时队列,进行步骤222;步骤220,将消息放入下级延时队列,并记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;步骤222,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;步骤224,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
步骤226,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若执行队列存在下级延时队列,进行步骤228;若执行队列不存在下级延时队列,返回步骤210;步骤228,将消息放入下级执行队列中的延时队列,返回步骤206,同时进行步骤230;步骤230,记录消息日志状态为处理中,并实时存储日志数据至日志数据库。
本发明提供的用于消息队列服务的支持微服务架构事务最终一致性的方法,通过接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列中,在监听到执行队列收到消息后发送消息,接收消息,根据消息查询日志记录,判断消息日志状态,根据不同的消息日志状态,进行不同的处理,避免因为消息重复发送导致业务系统处理错误,实现有效地管理各应用系统之间的消息,通过记录调用结果,以及调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。进一步地,根据处理结果记录日志,并实时存储日志数据至日志数据库,尤其地,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续收到重复消息时,判断业务调用是否已产生结果,避免重复调用。
具体地说,若消息日志状态为处理中或日志不存在,根据消息调用业 务系统服务,判断业务系统服务是否调用成功及调用失败原因类型,若业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中,监听到回执队列收到包含返回结果的消息后,发送回执消息,接收回执消息,发送给发送端,并返回处理结果,通过将回执消息及时发送给发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。
进一步地,若业务系统服务非业务原因调用失败,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若执行队列存在下级延时队列,将消息放入下级执行队列中的延时队列,等待进行继续处理,同时记录消息日志状态为处理中,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列,若回执队列存在下级延时队列,将消息放入下级延时队列,等待进行继续处理,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,通过调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效,保证消息队列服务调用的可靠性。
进一步地,若回执队列不存在下级延时队列,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,若发送成功,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,若执行队列不存在下级延时队列,重新通知回执队列,并将返回结果放入回执队列的实时队列中,继续处理,以及直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组 合:事务ID、调用参数、环境参数、调用时间、调用状态,通过记录的各种不同的日志数据,可以确定消息日志状态,实现避免因为消息重复发送导致业务系统处理错误,完善了消息队列服务调用机制,进一步地保证消息队列服务调用的可靠性。进一步地,可以通过事务ID直接查询日志记录,判断消息日志状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解消息日志的相关调用信息,以调用消息队列服务,保证消息队列服务调用的可靠性。
本发明还提出一种支持微服务架构事务最终一致性的方法,用于接收端,发送端通过消息队列服务与接收端进行交互,包括:步骤302,拦截服务调用,查询日志记录;步骤304,判断是否存在日志记录;若不存在日志记录,进行步骤306;若存在日志记录,进行步骤308;步骤306,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库;以及步骤308,根据日志记录,返回调用结果。
本发明提供的用于接收端的支持微服务架构事务最终一致性的方法,通过拦截服务调用,查询日志记录,根据是否存在日志记录,进行不同的处理,若存在日志记录,根据日志记录,直接返回调用结果。进一步地,若不存在日志记录,通过调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库,最后根据日志记录,返回调用结果,保证调用服务不会被重复调用。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速判断是否存在日志记录,在不存在日志记录时,通过调用业务系统服务,记录日志,并实时存储日志数据至日志数据库,保证调用服务不会被重复调用。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用结果,详细了解日志的相关调用信息。
本发明还提出了一种支持微服务架构事务最终一致性的装置,用于发 送端,发送端通过消息队列服务与接收端进行交互,包括:日志记录装置,用于发起服务调用,记录日志,并实时存储日志数据至日志数据库;定时发送装置,用于当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断调用请求是否成功发送;在调用请求成功发送时,以调用消息队列服务;回执处理装置,用于接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用为处理完成,不作处理;以及还用于若调用为处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,继续发起服务调用。
本发明提供的用于发送端的支持微服务架构事务最终一致性的装置,通过日志记录装置,发起服务调用,记录日志,并实时存储日志数据至日志数据库,通过定时发送装置,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务,通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。
进一步地,通过回执处理装置,接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证调用服务失败后,发起方业务数据的回滚,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
根据本发明上述的支持微服务架构事务最终一致性的装置,还可以具有如下附加的技术特征:
在上述技术方案中,优选地,日志记录装置,还用于在调用请求未成功发送时,重新发起服务调用。
在该技术方案中,在调用请求未成功发送时,通过日志记录装置,重新发起服务调用,以支持发生错误时的重新处理,再通过记录日志,并实时存储日志数据至日志数据库,并等待重新发送调用请求,以调用消息队 列服务,使得服务调用更加及时、有效,完善了服务调用机制,保证业务调用一定被执行,进一步地保证服务调用的可靠性。
在上述技术方案中,优选地,日志记录装置,具体用于:业务系统服务的业务代码调用远程服务接口时,拦截调用远程服务接口;生成全局唯一的事务ID,并记录所述事务ID;实时存储日志数据,并记录日志的调用状态为未调用。
在该技术方案中,业务系统服务的业务代码调用远程服务接口时,通过日志记录装置,拦截调用远程服务接口,生成全局唯一的事务ID,并记录事务ID,保证不同的应用系统生成不同的ID,以及相同的应用系统在每次服务调用时生成的ID不重复。进一步地,通过实时存储日志数据至日志数据库,并记录日志的调用状态为未调用,实现通过事务ID查询日志记录,就可以查询到调用状态为未调用的日志,查询速度快,进而可以快速判断日志状态,使得回执处理更加及时、有效,完善了服务调用机制,进一步地保证服务调用的可靠性。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过各种不同的日志数据,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速根据日志状态判断调用处理是否完成,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚进一步地保证服务调用的可靠性。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解日志的相关调用信息,实现及时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,进而调用消息队列服务,保证服务调用的可靠性。进一步地,方便查询日志记录,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚,同时进一步地保证服务调用的可靠性。
本发明还提出一种支持微服务架构事务最终一致性的装置,用于消息队 列服务,发送端通过消息队列服务与接收端进行交互,包括:消息接收装置,用于接收发送端传递的消息,调用消息队列,将所述消息放入执行队列中的实时队列;消息队列管理装置,用于管理消息队列,以及监听到执行队列收到所述消息后,发送所述消息;服务调用装置,用于接收所述消息,根据所述消息查询日志记录;重复检测装置,用于在调用业务系统服务前,判断日志状态;服务调用装置,还用于若日志状态为处理中或日志不存在,根据所述消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型;若日志状态为成功或者失败,或者业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中;
消息队列管理装置,还用于监听到回执队列收到包含返回结果的消息后,发送所述消息;回执发送装置,接收所述消息,发送给发送端,并返回处理结果;
服务调用装置,还用于根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,将消息放入下级延时队列,同时消息日志记录装置,用于记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;若回执队列不存在下级延时队列,所述消息日志记录装置,用于直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
还用于若回执队列中的消息发送成功,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
服务调用装置,还用于若业务系统服务非业务原因调用失败,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,存在下级延时队列,将消息放入下级执行队列中的延时队列,回执发送装置,重新接收消息;以及若执行队列不存在下级延时队列时,重新通知回执队列,并将返回结果放入回执队列的实时队列中,以及消息日志记录装置,还用于记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库。
本发明提供的用于消息队列服务的支持微服务架构事务最终一致性的装置,通过消息接收装置,接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列中,通过消息队列管理装置,在监听到执行队列收到消 息后发送消息,通过服务调用装置,接收消息,根据消息查询日志记录,通过重复检测装置,判断消息日志状态,根据不同的消息日志状态,进行不同的处理,避免因为消息重复发送导致业务系统处理错误,实现有效地管理各应用系统之间的消息,通过记录调用结果,以及调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。进一步地,根据处理结果记录日志,并实时存储日志数据至日志数据库,尤其地,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续收到重复消息时,判断业务调用是否已产生结果,避免重复调用。
具体地说,若消息日志状态为处理中或日志不存在,通过服务调用装置,根据消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型,若业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中,通过消息队列管理装置,监听到回执队列收到包含返回结果的消息后,发送回执消息,通过回执发送装置,接收回执消息,发送给发送端,并返回处理结果,通过将回执消息及时发送给发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。
进一步地,若业务系统服务非业务原因调用失败,通过服务调用装置,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若存在下级延时队列,将消息放入下级执行队列中的延时队列,通过回执发送装置,重新接收消息等待进行继续处理,同时通过消息日志记录装置,记录消息日志状态为处理中,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,通过服务调用装置,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列,若回执队列存在下级延时队列,将消息放入下级延时队列,等待进行继续处理,通过消息日志记录装置,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,通过调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效,保证消息队列服务调用的可靠性。
进一步地,若回执队列不存在下级延时队列,通过消息日志记录装置, 直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,若发送成功,通过消息日志记录装置,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,若执行队列不存在下级延时队列,再通过服务调用装置,重新通知回执队列,并将返回结果放入回执队列的实时队列中,继续处理,以及通过消息日志记录装置,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过记录的各种不同的日志数据,可以确定消息日志状态,实现避免因为消息重复发送导致业务系统处理错误,完善了消息队列服务调用机制,进一步地保证消息队列服务调用的可靠性。进一步地,可以通过事务ID直接查询日志记录,判断消息日志状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解消息日志的相关调用信息,以调用消息队列服务,保证消息队列服务调用的可靠性。
本发明还提出一种支持微服务架构事务最终一致性的装置,用于接收端,发送端通过消息队列服务与接收端进行交互,包括:调用处理装置,用于拦截服务调用,查询日志记录,并判断是否存在日志记录;调用日志记录装置,用于若不存在日志记录,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库;还用于若存在日志记录,根据日志记录,返回调用结果。
本发明提供的用于接收端的支持微服务架构事务最终一致性的装置,通过调用处理装置,拦截服务调用,查询日志记录,根据是否存在日志记录,进行不同的处理,若存在日志记录,通过调用日志记录装置,根据日志记录,直接返回调用结果。进一步地,若不存在日志记录,通过调用日志记录装置,调用 业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库,最后根据日志记录,返回调用结果,保证调用服务不会被重复调用。
在上述技术方案中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
在该技术方案中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速判断是否存在日志记录,在不存在日志记录时,通过调用业务系统服务,记录日志,并实时存储日志数据至日志数据库,保证调用服务不会被重复调用。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用结果,详细了解日志的相关调用信息。
本发明还提出一种支持微服务架构事务最终一致性的系统,包括上述任一技术方案所述的用于发送端的支持微服务架构事务最终一致性的装置;上述任一技术方案所述的用于消息队列服务的支持微服务架构事务最终一致性的装置;以及上述任一技术方案所述的用于接收端的支持微服务架构事务最终一致性的装置。
本发明提供的支持微服务架构事务最终一致性的系统,通过采用用于发送端的支持微服务架构事务最终一致性的装置,用于消息队列服务的支持微服务架构事务最终一致性的装置,以及用于接收端的支持微服务架构事务最终一致性的装置,实现通过日志及消息队列服务对服务进行异步调用,保证服务重复调用的幂等性,实现服务间数据的最终一致性,保证服务调用的可靠性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1a是本发明的一个实施例的用于发送端的支持微服务架构事务最终一致性的方法的流程示意图;
图1b是本发明的一个实施例的用于发送端的支持微服务架构事务最终一致性的方法的发起服务调用的流程示意图;
图1c是本发明的一个实施例的用于发送端的支持微服务架构事务最终一致性的方法的调用消息发送的流程示意图;
图1d是本发明的一个实施例的用于发送端的支持微服务架构事务最终一致性的方法的回执处理的流程示意图;
图2是本发明的一个实施例的用于消息队列服务的支持微服务架构事务最终一致性的方法的流程示意图;
图3是本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的方法的流程示意图;
图4是本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的装置的示意图;
图5是本发明的一个实施例的用于消息队列服务的支持微服务架构事务最终一致性的装置的示意图;
图6是本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的装置的示意图;
图7是本发明的一个实施例的支持微服务架构事务最终一致性的系统的示意图;
图8是本发明的另一个实施例的支持微服务架构事务最终一致性的系统的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
如图1a所示,本发明的一个实施例的用于发送端的支持微服务架构事 务最终一致性的方法的流程示意图:
步骤102,发起服务调用,记录日志,并实时存储日志数据至日志数据库;
步骤104,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务;
步骤106,接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,进行步骤108;以及若调用为处理中,进行步骤110;
步骤108,不作处理;
步骤110,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,返回步骤102。
本发明提供的用于发送端的支持微服务架构事务最终一致性的方法,通过发起服务调用,记录日志,并实时存储日志数据至日志数据库,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务,通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。
进一步地,通过接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
具体实施例中,当日志写入动作时,通过异步任务触发扫描任务,同时定时发起扫描任务。进一步地,通过扫描任务查询日志数据库,查询状态为“未调用”以及“处理中”的日志,根据上述查询到的日志调用消息队列服务。
如图1a所示,本发明的另一个实施例的用于发送端的支持微服务架构 事务最终一致性的方法的流程示意图:
步骤102,发起服务调用,记录日志,并实时存储日志数据至日志数据库;
步骤104,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务;
步骤106,接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,进行步骤108;以及若调用为处理中,进行步骤110;
步骤108,不作处理;
步骤110,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,返回步骤102;以及
步骤112,在调用请求未成功发送时,返回步骤102。
在该实施例中,在调用请求未成功发送时,通过重新发起服务调用,以支持发生错误时的重新处理,再通过记录日志,并实时存储日志数据至日志数据库,并等待重新发送调用请求,以调用消息队列服务,使得服务调用更加及时、有效,完善了服务调用机制,保证业务调用一定被执行,进一步地保证服务调用的可靠性。
具体实施例中,如果服务长时间未返回结果,可以手动或定时重复发起服务调用。
在本发明的一个实施例中,优选地,步骤102,具体包括:业务系统服务的业务代码调用远程服务接口时,拦截调用远程服务接口;生成全局唯一的事务ID,并记录事务ID;实时存储日志数据至日志数据库,并记录日志的调用状态为未调用。
在该实施例中,业务系统服务的业务代码调用远程服务接口时,通过拦截调用远程服务接口,生成全局唯一的事务ID,并记录事务ID,保证不同的应用系统生成不同的ID,以及相同的应用系统在每次服务调用时生成的ID不重复。进一步地,通过实时存储日志数据至日志数据库,并记录 日志的调用状态为未调用,实现通过事务ID查询日志记录,就可以查询到调用状态为未调用的日志,查询速度快,进而可以快速判断日志状态,使得回执处理更加及时、有效,完善了服务调用机制,进一步地保证服务调用的可靠性。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过各种不同的日志数据,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速根据日志状态判断调用处理是否完成,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚,进一步地保证服务调用的可靠性。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解日志的相关调用信息,实现及时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,进而调用消息队列服务。进一步地,方便查询日志记录,使得回执处理更加及时、有效,完善了服务调用机制,同时进一步地保证服务调用的可靠性。
如图1b至图1d所示,本发明的再一个实施例的用于发送端的支持微服务架构事务最终一致性的方法的流程示意图:
其中,如图1b所示,发起服务调用的流程包括:
步骤114,业务系统服务的业务代码调用远程服务接口;拦截调用远程服务接口;生成全局唯一的事务ID;以及记录日志,并记录日志的调用状态为未调用;
步骤116,实时存储日志数据至日志数据库;
步骤118,定时扫描日志数据;
步骤120,调用消息队列服务;
如图1c所示,调用消息发送流程包括:
步骤122,当日志写入动作时,通过异步任务触发扫描任务,或者定时发起扫描任务;
步骤124,扫描任务查询日志数据库,查询状态为“未调用”的日志;以及扫描任务查询日志数据库,查询状态为“处理中”的日志;
步骤126,根据查询到的日志调用消息队列服务;
如图1d所示,回执处理的流程包括:
步骤128,接收回执消息;
步骤130,根据回执消息查询日志记录;
步骤132,判断日志状态是否处理完成;若日志状态为处理完成,进行步骤140;若日志状态为处理中,进行步骤134;
步骤134,调用返回结果,并将返回结果记录到日志;
步骤136,实时存储日志数据至日志数据库;
步骤138,根据返回结果的状态调用相应业务的接口;
步骤140,不作处理。
在该实施例中,通过发起服务调用,记录日志,并实时存储日志数据至日志数据库,当日志写入动作时,定时检查日志数据库,根据查询到的日志发送调用请求,以调用消息队列服务,通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。
进一步地,通过接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证调用服务失败后,发起方业务数据的回滚,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
具体实施例中,根据返回结果的成功或失败状态,调用相应业务的接口进行后续处理。进一步地,如果服务长时间未返回结果,可以手动或定时重复发起服务调用。
优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
如图2所示,本发明的一个实施例的用于消息队列服务的支持微服务架构事务最终一致性的方法的流程示意图:
步骤232,接收发送端传递的消息;
步骤234,调用消息队列;
步骤236,将消息放入执行队列中的实时队列,管理消息队列,以及监听到执行队列收到消息后,发送消息;
步骤238,接收消息;
步骤240,查询消息日志,同时进行步骤268和步骤242;
步骤242,判断消息日志状态;判断消息日志状态;若消息日志状态为处理中或日志不存在,进行步骤244;若消息日志状态为成功或者失败,进行步骤246;
步骤244,调用业务系统服务,进行步骤270;
步骤246,通知回执队列;
步骤248,将返回结果放入回执队列的实时队列中;
步骤250,接收回执消息;
步骤252,发送给发送端,并返回处理结果;
步骤254,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,进行步骤256;若发送成功,进行步骤262;
步骤256,计算下级延时队列;
步骤258,判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,进行步骤260;若回执队列不存在下级延时队列,进行步骤266;
步骤260,将消息放入下级延时队列,同时进行步骤264;
步骤262,记录消息日志状态为结果发送成功,并进行步骤268;
步骤264,记录消息日志状态为回执发送失败,并进行步骤268;
步骤266,记录消息日志状态为回执发送失败,并进行步骤268;
步骤268,实时存储日志数据至日志数据库;
步骤270,判断业务系统服务是否调用成功及调用失败原因类型;若业务系统服务调用成功或者业务原因调用失败,进行步骤246;若业务系统服务非业务原因调用失败,进行步骤272;
步骤272,根据当前队列计算下级延时队列;
步骤274,判断执行队列是否存在下级延时队列,若执行队列存在下级延 时队列,进行步骤276;若执行队列不存在下级延时队列,返回步骤246;
步骤276,将消息放入下级执行队列中的延时队列,返回步骤236,同时进行步骤278;
步骤278,记录消息日志状态为处理中,并进行步骤268;
其中,如图2所示,步骤280,根据处理结果记录日志,步骤280包括:步骤262、步骤264、步骤266以及步骤278。
本发明提供的用于消息队列服务的支持微服务架构事务最终一致性的方法,通过接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列中,在监听到执行队列收到消息后发送消息,接收消息,根据消息查询日志记录,判断消息日志状态,根据不同的消息日志状态,进行不同的处理,避免因为消息重复发送导致业务系统处理错误,实现有效地管理各应用系统之间的消息,通过记录调用结果,以及调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。进一步地,根据处理结果记录日志,并实时存储日志数据至日志数据库,尤其地,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续收到重复消息时,判断业务调用是否已产生结果,避免重复调用。
具体地说,若消息日志状态为处理中或日志不存在,根据消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型,若业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中,监听到回执队列收到包含返回结果的消息后,发送回执消息,接收回执消息,发送给发送端,并返回处理结果,通过将回执消息及时发送给发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。
进一步地,若业务系统服务非业务原因调用失败,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若执行队列存在下级延时队列,将消息放入下级执行队列中的延时队列,等待进行继续处理,同时记录消息日志状态为处理中,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,根据处理结果,判断回执队列中的消息是否发送成功;若发 送失败,计算下级延时队列,并判断是否存在下级延时队列,若存在下级延时队列,将消息放入下级延时队列,等待进行继续处理,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,通过调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效,保证消息队列服务调用的可靠性。
进一步地,若回执队列不存在下级延时队列,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,若发送成功,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,若执行队列不存在下级延时队列,重新通知回执队列,并将返回结果放入回执队列的实时队列中,继续处理,以及直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过记录的各种不同的日志数据,可以确定消息日志状态,实现避免因为消息重复发送导致业务系统处理错误,完善了消息队列服务调用机制,进一步地保证消息队列服务调用的可靠性。进一步地,可以通过事务ID直接查询日志记录,判断消息日志状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解消息日志的相关调用信息,以调用消息队列服务,保证消息队列服务调用的可靠性。
具体实施例中,可以通过事务ID查询消息日志。
如图3所示,本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的方法的流程示意图:
步骤310,拦截服务调用;
步骤312,查询日志记录,同时进行步骤314和步骤320;
步骤314,判断是否存在日志记录;若不存在日志记录,进行步骤316;若存在日志记录,进行步骤318;
步骤316,调用业务系统服务,记录日志,返回调用结果,同时进行步骤320;
步骤318,根据日志记录,返回调用结果;
步骤320,实时存储日志数据至日志数据库。
本发明提供的用于接收端的支持微服务架构事务最终一致性的方法,通过拦截服务调用,查询日志记录,根据是否存在日志记录,进行不同的处理,若存在日志记录,根据日志记录,直接返回调用结果。进一步地,若不存在日志记录,通过调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库,最后根据日志记录,返回调用结果,保证重复调用服务不会被重复调用。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速判断是否存在日志记录,在不存在日志记录时,通过调用业务系统服务,记录日志,并实时存储日志数据至日志数据库,保证调用服务不会被重复调用。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用结果,详细了解日志的相关调用信息。
具体实施例中,可以通过事务ID查询消息日志。
如图4所示,本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的装置400的示意图:
日志记录装置402,用于发起服务调用,记录日志,并实时存储日志数据至日志数据库;
定时发送装置404,用于当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务;
回执处理装置406,用于接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用为处理完成,不作处理;以及还用于若调用为处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,继续发起服务调用。
本发明提供的用于发送端的支持微服务架构事务最终一致性的装置400,通过日志记录装置402,发起服务调用,记录日志,并实时存储日志数据至日志数据库,通过定时发送装置404,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务,通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。
进一步地,通过回执处理装置406,接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
具体实施例中,当日志写入动作时,通过异步任务触发发送装置的扫描任务,同时定时发送装置定时发起扫描任务。进一步地,通过扫描任务查询日志数据库,查询状态为“未调用”以及“处理中”的日志,根据上述查询到的日志调用消息队列服务。
在本发明的一个实施例中,优选地,日志记录装置,还用于在调用请求未成功发送时,重新发起服务调用。
在该实施例中,在调用请求未成功发送时,通过日志记录装置,重新发起服务调用,以支持发生错误时的重新处理,再通过记录日志,并实时存储日志数据至日志数据库,并等待重新发送调用请求,以调用消息队列服务,使得服务调用更加及时、有效,完善了服务调用机制,保证业务调用一定被执行,进一步地保证服务调用的可靠性。
具体实施例中,如果服务长时间未返回结果,可以手动或定时重复发 起服务调用。
在本发明的一个实施例中,优选地,日志记录装置,具体用于:业务系统服务的业务代码调用远程服务接口时,拦截调用远程服务接口;生成全局唯一的事务ID,并记录所述事务ID;实时存储日志数据,并记录日志的调用状态为未调用。
在该实施例中,业务系统服务的业务代码调用远程服务接口时,通过日志记录装置,拦截调用远程服务接口,生成全局唯一的事务ID,并记录事务ID,保证不同的应用系统生成不同的ID,以及相同的应用系统在每次服务调用时生成的ID不重复。进一步地,通过实时存储日志数据至日志数据库,并记录日志的调用状态为未调用,实现通过事务ID查询日志记录,就可以查询到调用状态为未调用的日志,查询速度快,进而可以快速判断日志状态,使得回执处理更加及时、有效,完善了服务调用机制,进一步地保证服务调用的可靠性。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过各种不同的日志数据,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速根据日志状态判断调用处理是否完成,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚,进一步地保证服务调用的可靠性。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解日志的相关调用信息,实现及时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,进而调用消息队列服务,保证服务调用的可靠性。进一步地,方便查询日志记录,使得回执处理更加及时、有效,完善了服务调用机制,保证调用服务失败后,发起方业务数据的回滚进一步地保证服务调用的可靠性。
如图5所示,本发明的一个实施例的用于消息队列服务的支持微服务架构事务最终一致性的装置500的示意图:
消息接收装置502,用于接收发送端传递的消息,调用消息队列,将所述消息放入执行队列中的实时队列;
消息队列管理装置504,用于管理消息队列,以及监听到执行队列收到所述消息后,发送所述消息;
服务调用装置506,用于接收所述消息,根据所述消息查询日志记录;
重复检测装置508,用于在调用业务系统服务前,判断日志状态;
服务调用装置506,还用于若日志状态为处理中或日志不存在,根据所述消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型;若日志状态为成功或者失败,或者业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中;
消息队列管理装置504,还用于监听到回执队列收到包含返回结果的消息后,发送所述消息;
回执发送装置510,接收所述消息,发送给发送端,并返回处理结果;
服务调用装置506,还用于根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,将消息放入下级延时队列,同时消息日志记录装置,用于记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;若回执队列不存在下级延时队列,
所述消息日志记录装置512,用于直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
还用于若回执队列不存在下级延时队列,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;还用于若回执队列中的消息发送成功,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
服务调用装置506,还用于若业务系统服务非业务原因调用失败,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,存在下级延时队列,将消息放入下级执行队列中的延时队列,回执发送装置,重新接收消息;以及若执行队列不存在下级延时队列时,重新通知回执队列,并将返回结果放入回执队列的实时队列中,以及
消息日志记录装置512,还用于记录消息日志状态为回执发送失败,并实 时存储日志数据至日志数据库。
本发明提供的用于消息队列服务的支持微服务架构事务最终一致性的装置500,通过消息接收装置502,接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列中,通过消息队列管理装置504,在监听到执行队列收到消息后发送消息,通过服务调用装置506,接收消息,根据消息查询日志记录,通过重复检测装置508,判断消息日志状态,根据不同的消息日志状态,进行不同的处理,避免因为消息重复发送导致业务系统处理错误,实现有效地管理各应用系统之间的消息,通过记录调用结果,以及调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。进一步地,根据处理结果记录日志,并实时存储日志数据至日志数据库,尤其地,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续收到重复消息时,判断业务调用是否已产生结果,避免重复调用。
具体地说,若消息日志状态为处理中或日志不存在,通过服务调用装置506,根据消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型,若业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中,通过消息队列管理装置504,监听到回执队列收到包含返回结果的消息后,发送回执消息,通过回执发送装置510,接收回执消息,发送给发送端,并返回处理结果,通过将回执消息及时发送给发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。
进一步地,若业务系统服务非业务原因调用失败,通过服务调用装置506,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若存在下级延时队列,将消息放入下级执行队列中的延时队列,通过回执发送装置510,重新接收消息等待进行继续处理,同时通过消息日志记录装置,记录消息日志状态为处理中,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,通过服务调用装置506,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存 在下级延时队列,若回执队列存在下级延时队列,将消息放入下级延时队列,等待进行继续处理,通过消息日志记录装置512,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,通过调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效,保证消息队列服务调用的可靠性。
进一步地,若回执队列不存在下级延时队列,通过消息日志记录装置512,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,若发送成功,通过消息日志记录装置512,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,若执行队列不存在下级延时队列,再通过服务调用装置506,重新通知回执队列,并将返回结果放入回执队列的实时队列中,继续处理,以及通过消息日志记录装置512,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态,通过记录的各种不同的日志数据,可以确定消息日志状态,实现避免因为消息重复发送导致业务系统处理错误,完善了消息队列服务调用机制,进一步地保证消息队列服务调用的可靠性。进一步地,可以通过事务ID直接查询日志记录,判断消息日志状态,当然也可以通过调用参数、环境参数、调用时间、调用状态,详细了解消息日志的相关调用信息,以调用消息队列服务,保证消息队列服务调用的可靠性。
如图6所示,本发明的一个实施例的用于接收端的支持微服务架构事务最终一致性的装置600的示意图:
调用处理装置602,用于拦截服务调用,查询日志记录,并判断是否存在日志记录;
调用日志记录装置604,用于若不存在日志记录,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库;还用于若存在日志记录,根据日志记录,返回调用结果。
本发明提供的用于接收端的支持微服务架构事务最终一致性的装置600,通过调用处理装置602,拦截服务调用,查询日志记录,根据是否存在日志记录,进行不同的处理,若存在日志记录,通过调用日志记录装置604,根据日志记录,直接返回调用结果。进一步地,若不存在日志记录,通过调用日志记录装置604,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库,最后根据日志记录,返回调用结果,保证重复调用服务不会被重复调用。
在本发明的一个实施例中,优选地,日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
在该实施例中,日志数据包括但并不局限于以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果,实现通过不同的日志数据查询日志记录,查询速度快,进而可以快速判断是否存在日志记录,在不存在日志记录时,通过调用业务系统服务,记录日志,并实时存储日志数据至日志数据库,保证调用服务不会被重复调用。进一步地,可以通过事务ID直接查询日志的调用状态,当然也可以通过调用参数、环境参数、调用时间、调用结果,详细了解日志的相关调用信息。
如图7所示,本发明的一个实施例的支持微服务架构事务最终一致性的系统700的示意图:上述任一技术方案所述的用于发送端的支持微服务架构事务最终一致性的装置702;上述任一技术方案所述的用于消息队列服务的支持微服务架构事务最终一致性的装置704;以及上述任一技术方案所述的用于接收端的支持微服务架构事务最终一致性的装置706。
本发明提供的支持微服务架构事务最终一致性的系统700,通过采用用于发送端的支持微服务架构事务最终一致性的装置702,用于消息队列服务的支持微服务架构事务最终一致性的装置704,以及用于接收端的支持微服务架构事务最终一致性的装置706,实现通过日志及消息队列服务对服务进行异步调用,保证服务重复调用的幂等性,实现服务间数据的最终一致性,保证服务 调用的可靠性。
如图8所示,本发明的另一个实施例的支持微服务架构事务最终一致性的系统800的示意图:
其中,用于发送端的支持微服务架构事务最终一致性的装置802包括:日志记录装置,定时发送装置以及回执处理装置;
其中,用于消息队列服务的支持微服务架构事务最终一致性的装804包括:消息接收装置,消息队列管理装置,服务调用装置,消息日志记录装置,重复检测装置,以及回执发送装置;
其中,用于接收端的支持微服务架构事务最终一致性的装置806包括:调用日志记录装置和调用处理装置。
本发明提供的支持微服务架构事务最终一致性的系统800,通过采用用于发送端的支持微服务架构事务最终一致性的装置802,用于消息队列服务的支持微服务架构事务最终一致性的装置804,以及用于接收端的支持微服务架构事务最终一致性的装置806,实现通过日志及消息队列服务对服务进行异步调用,保证服务重复调用的幂等性,实现服务间数据的最终一致性,保证服务调用的可靠性。
进一步地,用于发送端的支持微服务架构事务最终一致性的装置802,通过日志记录装置,发起服务调用,记录日志,并实时存储日志数据至日志数据库,通过定时发送装置,当日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,以调用消息队列服务,同时通过日志以及消息队列对服务进行异步数据调用,保证服务调用的可靠性。进一步地,通过回执处理装置,接收回执消息,根据回执消息查询日志记录,进而根据日志状态确定当前调用处理的情况,保证调用服务失败后,发起方业务数据的回滚,保证了调用结果处理的可靠性。若日志状态表明调用处理完成,不作处理,若日志状态表明调用仍在处理中,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,进行后续处理,继续发起服务调用。
进一步地,用于消息队列服务的支持微服务架构事务最终一致性的装置804,通过消息接收装置,接收发送端传递的消息,调用消息队列,将消息放入执行队列中的实时队列中,通过消息队列管理装置,在监听到执行队列收到消息后发送消息,通过服务调用装置,接收消息,根据消息查询日志记录,通过重复检测装置,判断消息日志状态,根据不同的消息日志状态,进行不同的处理,避免因为消息重复发送导致业务系统处理错误,实现有效地管理各应用系统之间的消息,通过记录调用结果,以及调用服务失败重试,将处理结果及时通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。进一步地,根据处理结果记录日志,并实时存储日志数据至日志数据库,尤其地,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续收到重复消息时,判断业务调用是否已产生结果,避免重复调用。
具体地说,若消息日志状态为处理中或日志不存在,通过服务调用装置,根据消息调用业务系统服务,判断业务系统服务是否调用成功及调用失败原因类型,若业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中,通过消息队列管理装置,监听到回执队列收到包含返回结果的消息后,发送回执消息,通过回执发送装置,接收回执消息,发送给发送端,并返回处理结果,通过将回执消息及时发送给发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效。
进一步地,若业务系统服务非业务原因调用失败,通过服务调用装置,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若存在下级延时队列,将消息放入下级执行队列中的延时队列,通过回执发送装置,重新接收消息等待进行继续处理,同时通过消息日志记录装置,记录消息日志状态为处理中,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,通过服务调用装置,根据处理结果,判断回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列,若回执队列存在下级延时队列,将消息放入下级延时队列,等待进行继续处理,通过消息日志记录装置,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,通过调用服务失败重试,将处理结果及时 通知发送端,实现发送端快速地进行回执处理,使得回执处理及时、有效,保证消息队列服务调用的可靠性。
进一步地,若回执队列不存在下级延时队列,通过消息日志记录装置,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,若发送成功,通过消息日志记录装置,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库,保证消息队列服务调用的可靠性。
进一步地,若执行队列不存在下级延时队列,再通过服务调用装置,重新通知回执队列,并将返回结果放入回执队列的实时队列中,继续处理,以及通过消息日志记录装置,直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库,用于后续运维人员检查日志进行处理。
进一步地,用于接收端地支持微服务架构事务最终一致性的装置906,通过调用处理装置,拦截服务调用,查询日志记录,根据是否存在日志记录,进行不同的处理,若存在日志记录,通过调用日志记录装置,根据日志记录,直接返回调用结果。进一步地,若不存在日志记录,通过调用日志记录装置,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库,最后根据日志记录,返回调用结果,保证重复调用服务不会被重复调用。
在本发明所述的实施例中,在上述实施例中,所述日志数据均不限于所列日志数据,其他与所述日志数据相关的数据信息均在本申请保护范围之内。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种支持微服务架构事务最终一致性的方法,用于发送端,所述发送端通过消息队列服务与接收端进行交互,其特征在于,包括:
步骤102,发起服务调用,记录日志,并实时存储日志数据至日志数据库;
步骤104,当所述日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断所述调用请求是否成功发送;在所述调用请求成功发送时,进行步骤106,以调用所述消息队列服务;
步骤106,接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,进行步骤108;以及若调用为处理中,进行步骤110;
步骤108,不作处理;
步骤110,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,返回步骤102。
2.根据权利要求1所述的支持微服务架构事务最终一致性的方法,其特征在于,还包括:
步骤112,在所述调用请求未成功发送时,返回步骤102。
3.根据权利要求1所述的支持微服务架构事务最终一致性的方法,其特征在于,所述步骤102,具体包括:
业务系统服务的业务代码调用远程服务接口时,拦截调用所述远程服务接口;
生成全局唯一的事务ID,并记录所述事务ID;
实时存储日志数据至日志数据库,并记录日志的调用状态为未调用。
4.根据权利要求3所述的支持微服务架构事务最终一致性的方法,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
5.一种支持微服务架构事务最终一致性的方法,用于消息队列服务,发送端通过所述消息队列服务与接收端进行交互,其特征在于,包括:
步骤202,接收所述发送端传递的消息,调用消息队列,将所述消息放入执行队列中的实时队列;
步骤204,管理消息队列,以及监听到所述执行队列收到所述消息后,发送所述消息;
步骤206,接收所述消息,根据所述消息查询日志记录,判断消息日志状态;若所述消息日志状态为处理中或日志不存在,进行步骤208;若所述消息日志状态为成功或者失败,进行步骤210;
步骤208,根据所述消息调用业务系统服务,判断所述业务系统服务是否调用成功及调用失败原因类型;若所述业务系统服务调用成功或者业务原因调用失败,进行步骤210;若所述业务系统服务非业务原因调用失败,进行步骤226;
步骤210,通知回执队列,并将返回结果放入回执队列的实时队列中;
步骤212,监听到所述回执队列收到包含所述返回结果的消息后,发送回执消息;
步骤214,接收所述回执消息,发送给所述发送端,并返回处理结果;
步骤216,根据所述处理结果,判断所述回执队列中的消息是否发送成功;若发送失败,进行步骤218;若发送成功,进行步骤224;
步骤218,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,进行步骤220;若回执队列不存在下级延时队列,进行步骤222;
步骤220,将消息放入下级延时队列,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
步骤222,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
步骤224,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
步骤226,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若执行队列存在下级延时队列,进行步骤228;若执行队列不存在下级延时队列,返回步骤210;
步骤228,将消息放入下级执行队列中的延时队列,返回步骤206,同时进行步骤230;
步骤230,记录消息日志状态为处理中,并实时存储日志数据至日志数据库。
6.根据权利要求5所述的支持微服务架构事务最终一致性的方法,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
7.一种支持微服务架构事务最终一致性的方法,用于接收端,发送端通过消息队列服务与所述接收端进行交互,其特征在于,包括:
步骤302,拦截服务调用,查询日志记录;
步骤304,判断是否存在日志记录;若不存在日志记录,进行步骤306;若存在日志记录,进行步骤308;
步骤306,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库;
步骤308,根据日志记录,返回调用结果。
8.根据权利要求7所述的支持微服务架构事务最终一致性的方法,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
9.一种支持微服务架构事务最终一致性的装置,用于发送端,所述发送端通过消息队列服务与接收端进行交互,其特征在于,包括:
日志记录装置,用于发起服务调用,记录日志,并实时存储日志数据至日志数据库;
定时发送装置,用于当所述日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断所述调用请求是否成功发送;在所述调用请求成功发送时,以调用所述消息队列服务;
回执处理装置,用于接收回执消息,根据所述回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,不作处理;以及
还用于若调用为处理中,调用返回结果,并将所述返回结果记录到日志中,实时存储日志数据至日志数据库,根据所述返回结果的状态调用相应业务的接口,继续发起服务调用。
10.根据权利要求9所述的支持微服务架构事务最终一致性的装置,其特征在于,
所述日志记录装置,还用于在所述调用请求未成功发送时,重新发起服务调用。
11.根据权利要求9所述的支持微服务架构事务最终一致性的装置,其特征在于,所述日志记录装置,具体用于:
业务系统服务的业务代码调用远程服务接口时,拦截调用所述远程服务接口;
生成全局唯一的事务ID,并记录所述事务ID;
实时存储日志数据,并记录日志的调用状态为未调用。
12.根据权利要求9所述的支持微服务架构事务最终一致性的装置,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
13.一种支持微服务架构事务最终一致性的装置,用于消息队列服务,发送端通过所述消息队列服务与接收端进行交互,其特征在于,包括:
消息接收装置,用于接收所述发送端传递的消息,调用消息队列,将所述消息放入执行队列中的实时队列;
消息队列管理装置,用于管理消息队列,以及监听到所述执行队列收到所述消息后,发送所述消息;
服务调用装置,用于接收所述消息,根据所述消息查询日志记录;
重复检测装置,用于在调用业务系统服务前,判断日志状态;
所述服务调用装置,还用于若所述日志状态为处理中或日志不存在,根据所述消息调用业务系统服务,判断所述业务系统服务是否调用成功及调用失败原因类型;
若所述日志状态为成功或者失败,或者所述业务系统服务调用成功或者业务原因调用失败,通知回执队列,并将返回结果放入回执队列的实时队列中;
所述消息队列管理装置,还用于监听到所述回执队列收到包含所述返回结果的消息后,发送回执消息;
回执发送装置,接收所述回执消息,发送给所述发送端,并返回处理结果;
所述服务调用装置,还用于根据所述处理结果,判断所述回执队列中的消息是否发送成功;若发送失败,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,将消息放入下级延时队列,同时消息日志记录装置,用于记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
若回执队列不存在下级延时队列,所述消息日志记录装置,用于直接记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
还用于若所述回执队列中的消息发送成功,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
所述服务调用装置,还用于若所述业务系统服务非业务原因调用失败,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,存在下级延时队列,将消息放入下级执行队列中的延时队列,所述回执发送装置,重新接收消息;以及
若执行队列不存在下级延时队列时,重新通知回执队列,并将返回结果放入回执队列的实时队列中,以及
所述消息日志记录装置,还用于记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库。
14.根据权利要13所述的支持微服务架构事务最终一致性的装置,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
15.一种支持微服务架构事务最终一致性的装置,用于接收端,发送端通过消息队列服务与所述接收端进行交互,其特征在于,包括:
调用处理装置,用于拦截服务调用,查询日志记录,并判断是否存在日志记录;
调用日志记录装置,用于若不存在日志记录,调用业务系统服务,记录日志,返回调用结果,并实时存储日志数据至日志数据库;
还用于若存在日志记录,根据日志记录,返回调用结果。
16.根据权利要求15所述的支持微服务架构事务最终一致性的装置,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用结果。
17.一种支持微服务架构事务最终一致性的系统,其特征在于,包括:
如权利要求9至12中任一项所述的支持微服务架构事务最终一致性的装置;
如权利要求13或14所述的支持微服务架构事务最终一致性的装置;以及
如权利要求15或16所述的支持微服务架构事务最终一致性的装置。
CN201611123186.5A 2016-12-08 2016-12-08 支持微服务架构事务最终一致性的方法、装置及系统 Active CN106777026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611123186.5A CN106777026B (zh) 2016-12-08 2016-12-08 支持微服务架构事务最终一致性的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611123186.5A CN106777026B (zh) 2016-12-08 2016-12-08 支持微服务架构事务最终一致性的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106777026A true CN106777026A (zh) 2017-05-31
CN106777026B CN106777026B (zh) 2019-12-20

Family

ID=58881666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611123186.5A Active CN106777026B (zh) 2016-12-08 2016-12-08 支持微服务架构事务最终一致性的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106777026B (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463434A (zh) * 2017-08-11 2017-12-12 恒丰银行股份有限公司 一种分布式任务处理方法与设备
CN107943601A (zh) * 2017-11-22 2018-04-20 国云科技股份有限公司 平衡微服务架构下非核心业务数据一致性与可靠性的方法
CN108038141A (zh) * 2017-11-27 2018-05-15 国云科技股份有限公司 微服务架构http交互模式下保证数据一致性的方法
CN108153598A (zh) * 2017-12-25 2018-06-12 东软集团股份有限公司 基于微服务架构的数据一致性方法以及装置
CN108306941A (zh) * 2018-01-05 2018-07-20 上海你我贷互联网金融信息服务有限公司 一种分布式消息系统
CN109062675A (zh) * 2018-08-03 2018-12-21 浪潮通用软件有限公司 一种工作流系统依赖事务的监听器实现方法
CN109144751A (zh) * 2018-09-04 2019-01-04 行吟信息科技(上海)有限公司 一种长任务处理方法及系统
CN109542964A (zh) * 2018-11-06 2019-03-29 用友网络科技股份有限公司 一种数据调用方法及数据调用系统
CN109634800A (zh) * 2018-10-19 2019-04-16 深圳平安财富宝投资咨询有限公司 数据处理方法、系统、终端及可读存储介质
CN109634978A (zh) * 2018-12-18 2019-04-16 钛马信息网络技术有限公司 数据读取一致性系统及方法
CN109783205A (zh) * 2019-01-03 2019-05-21 山东浪潮通软信息科技有限公司 一种基于事件补偿机制的数据最终一致性办法
CN109873863A (zh) * 2019-01-18 2019-06-11 北京百度网讯科技有限公司 服务的异步调用方法和装置
CN110222042A (zh) * 2019-05-30 2019-09-10 口碑(上海)信息技术有限公司 用于确定已核对业务数据的方法、装置、设备及系统架构
CN110532066A (zh) * 2018-05-23 2019-12-03 中国移动通信集团浙江有限公司 一种事务一致性的实现方法及系统
CN110611592A (zh) * 2019-09-20 2019-12-24 中国联合网络通信集团有限公司 日志记录方法及设备
CN110636108A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 一种用于电力计量的微服务架构及其实现方法
CN110691124A (zh) * 2019-09-24 2020-01-14 华润网络(深圳)有限公司 一种异地多活架构下数据处理方法及系统
CN110928532A (zh) * 2019-11-20 2020-03-27 杭州安恒信息技术股份有限公司 一种高一致性微服务架构及其数据更新方法
CN110995803A (zh) * 2019-11-22 2020-04-10 用友网络科技股份有限公司 上、下游业务处理方法及系统、计算机可读存储介质
CN111404643A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于消息队列的数据收发处理方法
CN111399982A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 一种支持多环境的命令远程执行装置及方法
CN111666178A (zh) * 2019-03-05 2020-09-15 中国环境监测总站 一种安全监控方法及其系统
CN111786875A (zh) * 2020-06-10 2020-10-16 武汉遂意语联网络科技有限公司 基于分布式架构的数据处理方法及装置
CN112202781A (zh) * 2020-09-30 2021-01-08 广东巴金斯科技有限公司 一种电商大数据量回执报文处理方法、装置和系统
CN112799860A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法
CN113094362A (zh) * 2021-04-30 2021-07-09 中国银行股份有限公司 一种异步消息可靠投递和处理的方法和装置
CN113191767A (zh) * 2021-05-10 2021-07-30 京东数字科技控股股份有限公司 分布式系统的数据处理方法及相关设备
CN114443773A (zh) * 2022-01-30 2022-05-06 中国农业银行股份有限公司 一种分布式系统数据同步方法、装置、设备和存储介质
CN117314659A (zh) * 2023-11-29 2023-12-29 中国人寿保险股份有限公司上海数据中心 一种非保险单证的管理方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508835A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于日志管理包的增量数据实时同步装置和方法
CN102508702A (zh) * 2011-10-20 2012-06-20 北京金和软件股份有限公司 一种基于aop技术进行拦截来处理业务通用逻辑的方法
CN102880541A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 日志信息的获取系统和获取方法
CN102929771A (zh) * 2012-09-28 2013-02-13 用友软件股份有限公司 日志记录装置和日志记录方法
CN103617287A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种分布式环境下的日志管理方法和装置
CN103647650A (zh) * 2013-12-18 2014-03-19 用友软件股份有限公司 基于规则定义的自动签名/验签装置和自动签名/验签方法
CN104077662A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 作业调度管理方法和装置
CN104092755A (zh) * 2014-07-07 2014-10-08 武汉科技大学 一种云服务起源数据的捕获方法和装置
CN104156300A (zh) * 2013-05-14 2014-11-19 利德科技发展有限公司 日志管理系统和日志管理方法
CN105872051A (zh) * 2016-03-31 2016-08-17 浪潮通信信息系统有限公司 一种政企云平台中的能力开放管控服务平台
CN105893016A (zh) * 2015-12-11 2016-08-24 乐视网信息技术(北京)股份有限公司 基于mvc架构的日志记录系统及方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508835A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于日志管理包的增量数据实时同步装置和方法
CN102508702A (zh) * 2011-10-20 2012-06-20 北京金和软件股份有限公司 一种基于aop技术进行拦截来处理业务通用逻辑的方法
CN102880541A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 日志信息的获取系统和获取方法
CN102929771A (zh) * 2012-09-28 2013-02-13 用友软件股份有限公司 日志记录装置和日志记录方法
CN104156300A (zh) * 2013-05-14 2014-11-19 利德科技发展有限公司 日志管理系统和日志管理方法
CN103617287A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种分布式环境下的日志管理方法和装置
CN103647650A (zh) * 2013-12-18 2014-03-19 用友软件股份有限公司 基于规则定义的自动签名/验签装置和自动签名/验签方法
CN104077662A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 作业调度管理方法和装置
CN104092755A (zh) * 2014-07-07 2014-10-08 武汉科技大学 一种云服务起源数据的捕获方法和装置
CN105893016A (zh) * 2015-12-11 2016-08-24 乐视网信息技术(北京)股份有限公司 基于mvc架构的日志记录系统及方法
CN105872051A (zh) * 2016-03-31 2016-08-17 浪潮通信信息系统有限公司 一种政企云平台中的能力开放管控服务平台

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463434A (zh) * 2017-08-11 2017-12-12 恒丰银行股份有限公司 一种分布式任务处理方法与设备
CN107943601A (zh) * 2017-11-22 2018-04-20 国云科技股份有限公司 平衡微服务架构下非核心业务数据一致性与可靠性的方法
CN108038141A (zh) * 2017-11-27 2018-05-15 国云科技股份有限公司 微服务架构http交互模式下保证数据一致性的方法
CN108153598A (zh) * 2017-12-25 2018-06-12 东软集团股份有限公司 基于微服务架构的数据一致性方法以及装置
CN108153598B (zh) * 2017-12-25 2021-06-25 东软集团股份有限公司 基于微服务架构的数据一致性方法以及装置
CN108306941A (zh) * 2018-01-05 2018-07-20 上海你我贷互联网金融信息服务有限公司 一种分布式消息系统
CN110532066A (zh) * 2018-05-23 2019-12-03 中国移动通信集团浙江有限公司 一种事务一致性的实现方法及系统
CN109062675A (zh) * 2018-08-03 2018-12-21 浪潮通用软件有限公司 一种工作流系统依赖事务的监听器实现方法
CN109144751A (zh) * 2018-09-04 2019-01-04 行吟信息科技(上海)有限公司 一种长任务处理方法及系统
CN109634800A (zh) * 2018-10-19 2019-04-16 深圳平安财富宝投资咨询有限公司 数据处理方法、系统、终端及可读存储介质
CN109542964A (zh) * 2018-11-06 2019-03-29 用友网络科技股份有限公司 一种数据调用方法及数据调用系统
CN109634978A (zh) * 2018-12-18 2019-04-16 钛马信息网络技术有限公司 数据读取一致性系统及方法
CN109783205A (zh) * 2019-01-03 2019-05-21 山东浪潮通软信息科技有限公司 一种基于事件补偿机制的数据最终一致性办法
CN109873863A (zh) * 2019-01-18 2019-06-11 北京百度网讯科技有限公司 服务的异步调用方法和装置
CN109873863B (zh) * 2019-01-18 2021-10-15 北京百度网讯科技有限公司 服务的异步调用方法和装置
CN111666178A (zh) * 2019-03-05 2020-09-15 中国环境监测总站 一种安全监控方法及其系统
CN110222042B (zh) * 2019-05-30 2020-06-16 口碑(上海)信息技术有限公司 用于确定已核对业务数据的方法、装置、设备及系统架构
CN110222042A (zh) * 2019-05-30 2019-09-10 口碑(上海)信息技术有限公司 用于确定已核对业务数据的方法、装置、设备及系统架构
CN110636108A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 一种用于电力计量的微服务架构及其实现方法
CN110636108B (zh) * 2019-08-16 2022-06-07 南方电网科学研究院有限责任公司 一种用于电力计量的微服务架构及其实现方法
CN110611592A (zh) * 2019-09-20 2019-12-24 中国联合网络通信集团有限公司 日志记录方法及设备
CN110611592B (zh) * 2019-09-20 2023-04-07 中国联合网络通信集团有限公司 日志记录方法及设备
CN110691124B (zh) * 2019-09-24 2020-11-24 华润网络(深圳)有限公司 一种异地多活架构下数据处理方法及系统
CN110691124A (zh) * 2019-09-24 2020-01-14 华润网络(深圳)有限公司 一种异地多活架构下数据处理方法及系统
CN110928532B (zh) * 2019-11-20 2022-04-29 杭州安恒信息技术股份有限公司 一种高一致性微服务架构及其数据更新方法
CN110928532A (zh) * 2019-11-20 2020-03-27 杭州安恒信息技术股份有限公司 一种高一致性微服务架构及其数据更新方法
CN110995803A (zh) * 2019-11-22 2020-04-10 用友网络科技股份有限公司 上、下游业务处理方法及系统、计算机可读存储介质
CN111404643A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于消息队列的数据收发处理方法
CN111399982A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 一种支持多环境的命令远程执行装置及方法
CN111786875A (zh) * 2020-06-10 2020-10-16 武汉遂意语联网络科技有限公司 基于分布式架构的数据处理方法及装置
CN112202781A (zh) * 2020-09-30 2021-01-08 广东巴金斯科技有限公司 一种电商大数据量回执报文处理方法、装置和系统
CN112799860A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法
CN112799860B (zh) * 2021-01-27 2023-02-21 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法
CN113094362A (zh) * 2021-04-30 2021-07-09 中国银行股份有限公司 一种异步消息可靠投递和处理的方法和装置
CN113094362B (zh) * 2021-04-30 2024-04-16 中国银行股份有限公司 一种异步消息可靠投递和处理的方法和装置
CN113191767A (zh) * 2021-05-10 2021-07-30 京东数字科技控股股份有限公司 分布式系统的数据处理方法及相关设备
CN114443773A (zh) * 2022-01-30 2022-05-06 中国农业银行股份有限公司 一种分布式系统数据同步方法、装置、设备和存储介质
CN117314659A (zh) * 2023-11-29 2023-12-29 中国人寿保险股份有限公司上海数据中心 一种非保险单证的管理方法

Also Published As

Publication number Publication date
CN106777026B (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN106777026A (zh) 支持微服务架构事务最终一致性的方法、装置及系统
US10785345B2 (en) Information processing method, client, server and computer-readable storage medium
CN105306585A (zh) 一种多数据中心的数据同步方法
CN108874587A (zh) 一种事务的最终一致性保障方法及系统
CN104301156B (zh) 一种客户投诉前移的预处理方法及其网络设备
CN110083439B (zh) 分布式事务系统
CN111427521B (zh) 电子面单打印方法、服务器、系统及设备
CN106874334A (zh) 一种数据处理方法及装置、资讯处理系统
CN108848000A (zh) 网络请求测试方法、装置、计算机设备和存储介质
CN105183299A (zh) 一种人机界面服务处理系统和方法
CN105005518B (zh) 自动聚合冗余系统交易数据的系统及其处理器和方法
CN107294741A (zh) 一种视频会议的通知方法及系统
CN102957594A (zh) 基于消息队列的消息处理方法、相关设备及系统
CN107612982A (zh) 一种降低功能页面请求次数的方法、存储介质、设备及系统
CN109639719A (zh) 一种基于临时标识符的身份验证方法和装置
CN106936919A (zh) 消息获取方法及装置
CN1971599A (zh) 一种软件应用错误监控方法及系统
CN109561487A (zh) 降低移动终端能耗的方法、装置以及移动终端
CN106953761A (zh) 服务器备灾系统及基于备灾系统的处理消息的方法
CN110191027A (zh) 一种ccu和mcu之间的通信错误诊断方法
CN111935316B (zh) 一种前端设备目录获取方法及装置
CN102055811A (zh) 设备id的写入方法及系统
CN109634848B (zh) 一种银行大型测试环境管理方法及系统
CN111382062B (zh) 房产交易系统和外部机构业务系统的联调测试方法及装置
CN106850245A (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