消息处理方法、设备及系统技术方案

技术编号:14052589 阅读:71 留言:0更新日期:2016-11-26 00:15
本申请提供一种消息处理方法、设备及系统。该消息处理方法及设备,通过在事务操作时,为消息设置标识信息,并将消息及其标识消息从应用设备传输至消息设备。同时执行所述事务操作,将所述标识信息保存至对应的标识信息数据库,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。从而确保消息的标识信息保存在数据库中与该消息对应的事务的完成具有一致性,只需要查询应用设备的标识信息数据库中是否存在对应的标识信息,便得到该事务对应消息的处理方式。本申请的消息处理系统包括前述应用设备及消息设备,通过增加一个消息的标识信息的概念,将消息及事务统一起来,完美地解决了消息发送最终一致性的问题。

【技术实现步骤摘要】

本申请涉及通信
,尤其涉及一种消息处理方法、设备及系统
技术介绍
在大型分布式应用中,消息中间件作为异步/解耦的方案已经成为整个分布式体系中不可或缺的一环。然而,在消息处理过程中,不可避免的需要考虑到业务操作和发送消息的一致性:即不能没做业务操作就发消息;不能做了业务操作但没发消息;不能业务操作只做了一部分,就发消息。通常业务操作包涵应用本地数据库的数据变更,而发消息是应用到消息队列的一次远程通信,这两者是完全独立的。一般地,针对在消息发送的过程中,将本地数据库事务及消息队列的通信视为一体,同时成功同时失败的问题,包括以下几种方案:(1)将数据库、消息队列等抽象成资源,并引入事务管理器来管理资源,最后通过两阶段提交协议在全局事务中协调多个资源的事务,以此做到消息发送的一致性。(2)在消息发送一致性问题上不强调实时一致性,假设业务在处理过程中就会随机出现问题,并暂时容忍这种问题带来的短暂不一致,通过补偿回查的方式,查找遗漏处理的消息,并通过调用应用系统提供的业务检查接口,判断遗漏消息的处理结果,以此保证消息处理与事务操作的一致性。上述第一种方案引入了分布式事务,会带来一些性能开销并增加系统复杂性;同时对业务系统侵入较大,在不需要事务处理与消息发送实时一致性的情况下,过于复杂。第二种方案通过消息回查机制确实能达到最终一致性,但在回查上比较繁琐,要求应用系统编写检查业务操作是否成功的代码。若应用系统发消息的业务节点非常多,那么需要编写回查的业务
代码量将直线上升。
技术实现思路
基于此,有必要针对上述消息发送的一致性的问题提供一种消息处理方法、设备及系统。有鉴于此,本申请提供一种应用设备的消息处理方法,该方法包括如下步骤:根据事务操作,生成对应的消息及所述消息的标识信息;向对应的消息设备发送所述消息及所述标识信息;执行所述事务操作,并将所述标识信息保存至对应的标识信息数据库,其中,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。进一步的,所述消息处于待处理状态。进一步的,该方法还包括:当执行完毕所述事务操作,向所述消息设备发送关于所述消息的消息处理指令。进一步的,将所述标识信息保存至所述标识信息数据库的操作与所述事务操作属于同一个原子操作。进一步的,所述将所述标识信息保存至对应的标识信息数据库包括:当执行完毕所述事务操作,将所述标识信息保存至对应的标识信息数据库。对应地,本申请还提供一种消息设备的消息处理方法,其中,该方法包括:接收对应的应用设备发送的消息及所述消息的标识信息;根据所述消息更新对应的待处理消息集合;根据所述待处理消息集合中待处理消息的标识信息在对应的标识信息数据库进行查询;根据对应的查询结果处理所述待处理消息。进一步的,所述根据所述消息更新对应的待处理消息集合包括:将所述消息设置为待处理状态,并将所述消息添加至对应的待处理消息集合。进一步的,该方法还包括:接收所述应用设备发送的消息处理指令;根据所述消息处理指令对对应消息进行处理;根据处理后的所述对应消息更新所述待处理消息集合。进一步的,所述根据所述待处理消息集合中待处理消息的标识信息在对应的标识信息数据库进行查询包括:当所述待处理消息集合中待处理消息的存续时长超过预定的处理时长阈值,根据所述待处理信息的标识信息在对应的标识信息数据库进行查询。进一步的,该方法还包括:根据待处理消息在所述待处理消息集合中的存续时长信息确定所述处理时长阈值。进一步的,所述根据对应的查询结果处理所述待处理消息包括:若对应的查询结果非空,提交所述待处理消息;若所述查询结果为空,删除所述待处理消息;根据相应的处理结果更新所述待处理消息集合。本申请还提供一种用于消息处理的应用设备,其中,该设备包括:第一装置,用于根据事务操作,生成对应的消息及所述消息的标识信息;第三装置,用于向对应的消息设备发送所述消息及所述标识信息;第五装置,用于执行所述事务操作,并将所述标识信息保存至对应的标识信息数据库,其中,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。进一步地,所述消息处于待处理状态。进一步地,该设备还包括:第七装置,用于当执行完毕所述事务操作,向所述消息设备发送关于所述消息的消息处理指令。进一步地,将所述标识信息保存至所述标识信息数据库的操作与所述事务操作属于同一个原子操作。进一步地,所述将所述标识信息保存至对应的标识信息数据库包括:当执行完毕所述事务操作,将所述标识信息保存至对应的标识信息数据库。对应地,本申请提供一种用于消息处理的消息设备,其中,该设备包括:第二装置,用于接收对应的应用设备发送的消息及所述消息的标识信息;第四装置,用于根据所述消息更新对应的待处理消息集合;第六装置,用于根据所述待处理消息集合中待处理消息的标识信息在对应的标识信息数据库进行查询;第八装置,用于根据对应的查询结果处理所述待处理消息。进一步地,所述第四装置,用于将所述消息设置为待处理状态,并将所述消息添加至对应的待处理消息集合。进一步地,该设备还包括:第十装置,用于接收所述应用设备发送的消息处理指令;第十二装置,用于根据所述消息处理指令对对应消息进行处理;第十四装置,用于根据处理后的所述对应消息更新所述待处理消息集合。进一步地,所述第六装置,用于当所述待处理消息集合中待处理消息的存续时长超过预定的处理时长阈值,根据所述待处理信息的标识信息在对应的标识信息数据库进行查询。进一步地,该设备还包括:第十六装置,用于根据待处理消息在所述待处理消息集合中的存续时长信息确定所述处理时长阈值。进一步地,所述第八装置用于:若对应的查询结果非空,提交所述待处理消息;若所述查询结果为空,删除所述待处理消息;根据相应的处理结果更新所述待处理消息集合。本申请还提供一种消息处理系统,该系统包括前述的应用设备和前述的消息设备。与现有技术相比,本申请所述的消息处理方法及设备,通过在事务操作时,为消息设置标识信息,并将消息及其标识消息从应用设备传输至消
息设备。同时执行所述事务操作,将所述标识信息保存至对应的标识信息数据库,其中,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。从而可得出,只有执行成功的事务,其对应的数据库中才存在消息的标识信息,在消息设备回查遗漏处理的消息的处理情况时,只需要查询应用设备的标识信息数据库中是否存在对应的标识信息,即可确保消息发送与事务处理的一致性。本申请的消息处理系统包括前述应用设备及消息设备,通过增加一个消息的标识信息的概念,将消息及事务统一起来,很完美地解决了消息发送最终一致性的问题。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本申请用于消息处理的应用设备一实施例的原理框图;图2为本申请用于消息处理的消息设备一实施例的原理框图;图3为本申请消息处理系统一实施例的原理框图;图4为本申请应用设备消息处理方法一实施例的流程图;图5为本申请消息设备消息处理方法一实施例的流程图;图6为本申请消息设备消息处理方法又一实施例的流程图;图7为本申请消息处理方法一实施例的流程图;图8为本申请消息处理方法又一实施例的流程图。附图中相同或本文档来自技高网
...
消息处理方法、设备及系统

【技术保护点】
一种在应用设备的消息处理方法,其中,该方法包括:根据事务操作,生成对应的消息及所述消息的标识信息;向对应的消息设备发送所述消息及所述标识信息;执行所述事务操作,并将所述标识信息保存至对应的标识信息数据库,其中,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。

【技术特征摘要】
1.一种在应用设备的消息处理方法,其中,该方法包括:根据事务操作,生成对应的消息及所述消息的标识信息;向对应的消息设备发送所述消息及所述标识信息;执行所述事务操作,并将所述标识信息保存至对应的标识信息数据库,其中,仅当所述事务操作被执行完毕时,所述标识信息存在于所述标识信息数据库。2.根据权利要求1所述的方法,其中,所述消息处于待处理状态。3.根据权利要求1或2所述的方法,其中,该方法还包括:当执行完毕所述事务操作,向所述消息设备发送关于所述消息的消息处理指令。4.根据权利要求1至3中任一项所述的方法,其中,将所述标识信息保存至所述标识信息数据库的操作与所述事务操作属于同一个原子操作。5.根据权利要求1至4中任一项所述的方法,其中,所述将所述标识信息保存至对应的标识信息数据库包括:当执行完毕所述事务操作,将所述标识信息保存至对应的标识信息数据库。6.一种在消息设备的消息处理方法,其中,该方法包括:接收对应的应用设备发送的消息及所述消息的标识信息;根据所述消息更新对应的待处理消息集合;根据所述待处理消息集合中待处理消息的标识信息在对应的标识信息数据库进行查询;根据对应的查询结果处理所述待处理消息。7.根据权利要求6所述的方法,其中,所述根据所述消息更新对应的待处理消息集合包括:将所述消息设置为待处理状态,并将所述消息添加至对应的待处理消息集合。8.根据权利要求6或7所述的方法,其中,该方法还包括:接收所述应用设备发送的消息处理指令;根据所述消息处理指令对对应消息进行处理;根据处理后的所述对应消息更新所述待处理消息集合。9.根据权利要求6至8中任一项所述的方法,其中,所述根据所述待处理消息集合中待处理消息的标识信息在对应的标识信息数据库进行查询包括:当所述待处理消息集合中待处理消息的存续时长超过预定的处理时长阈值,根据所述待处理信息的标识信息在对应的标识信息数据库进行查询。10.根据权利要求9所述的方法,其中,该方法还包括:根据待处理消息在所述待处理消息集合中的存续时长信息确定所述处理时长阈值。11.根据权利要求6至10中任一项所述的方法,其中,所述根据对应的查询结果处理所述待处理消息包括:若对应的查询结果非空,提交所述待处理消息;若所述查询结果为空,删除所述待处理消息;根据相应的处理结果更新所述待处理消息集合。12.一种用于消息处理的应用设备,其中,该设备包括:第一装置,用于根据事务操作,生成对应的消息及所述消息的标识信息;第三装置,用于向...

【专利技术属性】
技术研发人员:余艺
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1