平衡微服务架构下非核心业务数据一致性与可靠性的方法技术

技术编号:17779520 阅读:33 留言:0更新日期:2018-04-22 07:56
本发明专利技术涉及微服务开发技术领域,特别是指一种平衡微服务架构下非核心业务数据一致性与可靠性的方法。本发明专利技术所述的方法是对微服务架构下非核心业务的数据一致性请求先放入延时队列等待触发;对于调度失败的请求在满足通知规则的情况下重新放入延时队列等待下次触发。本发明专利技术能够很好地满足非核心业务对数据一致性的要求,同时在不影响核心业务运行的情况下,能很好地提高非核心业务请求处理的成功率。

【技术实现步骤摘要】
平衡微服务架构下非核心业务数据一致性与可靠性的方法
本专利技术涉及微服务开发
,特别是指一种平衡微服务架构下非核心业务数据一致性与可靠性的方法。
技术介绍
随着微服务架构的推广,越来越多的企业采用微服务架构来构建自己的业务平台。微服务架构为业务开发带来了诸多好处的同时,例如单一职责、独立开发部署、功能复用和系统容错等等,也带来一些问题。模块划分更细,模块数量越多,模块之间的依赖关系就越复杂;从而给系统的设计带来了更高的难度。传统的分布式事务处理架构应用在微服务架构中时采用一刀切的方式来处理所有的服务,往往难以在满足数据一致性的同时又满足可靠性的要求。所有服务在满足数据一致性的时必然对数据进行限制和锁定,过多的数据限制和锁定必然带来效率的下降以及操作成功率的降低;因此,需要重新设计一种方法来平衡微服务架构下非核心业务数据一致性与可靠性的方法。
技术实现思路
本专利技术解决的技术问题在于提出一种平衡微服务架构下非核心业务数据一致性与可靠性的方法。本专利技术解决上述技术问题的技术方案是:所述的方法是对微服务架构下非核心业务的数据一致性请求先放入延时队列等待触发;对于调度失败的请求在满足通知规则的情况下重新放入延时队列等待下次触发。所述的方法具体包括以下步骤:步骤1:上游应用处理本地业务之前,先向消息组件发送消息,消息内包含通知规则和通知地址;步骤2:上游应用处理本地业务;步骤3:如果本地业务处理成功,那么上游应用向消息组件发送确认发送的信息;如果本地业务处理失败,那么上游应用向消息组件发送取消发送的消息;步骤4:消息通知服务监听到消息组件内的消息,解析通知规则并放入延时队列等待触发通知;步骤5:消息通知服务调用下游应用的通知地址,如果调用成功,则该消息标记为通知成功;如果失败则在满足通知规则的情况下重新放入延时队列等待下次触发。所述上游应用指的是主要对数据进行写操作的应用,发送消息到消息组件的主体;与上游应用对应的下游应用作为接受请求的主体,负责接收消息并返回通知结果。所述消息通知服务的主要职责是监听消息队列,将消息存储到数据库中,并按照通知规则调用下游应用的发送通知接口。所述通知规则指的是消息通知的时间间隔特性,开发人员可根据不同的业务定制不同的通知规则。所述可以获取通知的地址可以是指向一个应用或多个应用。所述延时队列指的是消息组件只记录消息,并不马上发送。本专利技术的方法能产生如下的有益效果:1、本专利技术的方法不需要长时间锁定数据库,甚至都不需要数据库服务随时在线,因此具有性能上的优势;2、本专利技术的方法在满足数据一致性的前提下能提高非核心业务的成功率。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图;图2为本专利技术的其中一种实现方式的示意图。具体实施方式下面以业务系统为例,阐述如何在其上实现本方法。如图1所示,基本步骤如下:步骤1:上游应用处理本地业务之前,先向消息组件发送消息,消息内包含通知规则和通知地址;步骤2:上游应用处理本地业务;步骤3:如果本地业务处理成功,那么上游应用向消息组件发送确认发送的信息;如果本地业务处理失败,那么上游应用向消息组件发送取消发送的消息;步骤4:消息通知服务监听到消息组件内的消息,解析通知规则并放入延时队列等待触发通知;步骤5:消息通知服务调用下游应用的通知地址,如果调用成功,则该消息标记为通知成功;如果失败则在满足通知规则的情况下重新放入延时队列等待下次触发。消息系统在处理非核心业务模块的消息时,如图2所示,按照以下的流程进行处理:1、业务处理服务在业务事务提交前,向实时消息服务请求发送消息;2、实时消息服务只记录消息数据,而不真正发送;3、业务处理服务在业务事务提交后,向实时消息服务确认发送。只有在得到确认发送指令后,实时消息服务才真正发送消息;4、业务处理服务在业务事务回滚后,向实时消息服务取消发送;5、消息状态确认系统定期找到未确认发送或回滚发送的消息,向业务处理服务询问消息状态,业务处理服务根据消息ID或消息内容确定该消息是否有效。本专利技术在业务层面对服务以对数据一致性的强弱来区分业务,对数据有强一致性要求且访问并发较高的业务成为核心业务,其余对数据一致性要求不那么高的业务称为非核心业务,在此前提下使用本专利技术方法进行非核心业务的数据一致性与可靠性平衡的同时,系统的负载就能释放给核心业务,从而保证核心业务的正常运行,从而提高整个系统的可靠性。本文档来自技高网...
平衡微服务架构下非核心业务数据一致性与可靠性的方法

【技术保护点】
一种平衡微服务架构下非核心业务数据一致性与可靠性的方法,其特征在于,所述的方法是对微服务架构下非核心业务的数据一致性请求先放入延时队列等待触发;对于调度失败的请求在满足通知规则的情况下重新放入延时队列等待下次触发。

【技术特征摘要】
1.一种平衡微服务架构下非核心业务数据一致性与可靠性的方法,其特征在于,所述的方法是对微服务架构下非核心业务的数据一致性请求先放入延时队列等待触发;对于调度失败的请求在满足通知规则的情况下重新放入延时队列等待下次触发。2.根据权利要求1所述的方法,其特征在于:所述的方法具体包括以下步骤:步骤1:上游应用处理本地业务之前,先向消息组件发送消息,消息内包含通知规则和通知地址;步骤2:上游应用处理本地业务;步骤3:如果本地业务处理成功,那么上游应用向消息组件发送确认发送的信息;如果本地业务处理失败,那么上游应用向消息组件发送取消发送的消息;步骤4:消息通知服务监听到消息组件内的消息,解析通知规则并放入延时队列等待触发通知;步骤5:消息通知服务调用下游应用的通知地址,如果调用成功,则该消息标记为通知成功;如果失败则在满足通知规则的情况下重新放入延时队列等待下次触发。3.根据权利要求2所述的方法,其特征在于,所述上游应用指的是主要对数据进行写操作的应用,发送消息到消息组件的主体;与上游应用...

【专利技术属性】
技术研发人员:莫展鹏季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1