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所述的支持微服务架构事务最终一致性的装置。