[发明专利]基于消息队列的分布式方法和系统有效
申请号: | 201210410481.4 | 申请日: | 2012-10-24 |
公开(公告)号: | CN103019866B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 李鹏涛 | 申请(专利权)人: | 北京京东世纪贸易有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 中原信达知识产权代理有限责任公司11219 | 代理人: | 李宝泉,周亚荣 |
地址: | 100176 北京市北京经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 队列 分布式 方法 系统 | ||
1.一种基于消息队列的分布式方法,包括:
由第一应用向队列管理器发送消息;
确定所述消息是否成功发送;
如果确定没有成功发送所述消息,则所述消息被放入第一异常处理模块进行处理;
如果确定已经成功发送所述消息,则由所述队列管理器对所接收到的消息进行处理;
将所述消息发送到第二应用;以及
由所述第二应用对所接收到的消息进行处理。
2.根据权利要求1所述的方法,其中所述由所述队列管理器对所接收到的消息进行处理的步骤进一步包括:
确定所述消息是否是死信;以及
如果确定所述消息是死信,则所述消息被放入死信处理模块以进行处理。
3.根据权利要求1所述的方法,其中所述由第二应用对所接收到的消息进行处理的步骤进一步包括:
确定所述第二应用是否已经成功处理了所述消息;以及
如果确定没有成功处理所述消息,则所述消息被放入第二异常处理模块进行处理。
4.根据权利要求1所述的方法,其中所述消息被放入第一异常处理模块进行处理的步骤进一步包括:
确定所述第一异常处理模块是否已经成功处理了所述消息;
如果确定没有成功处理所述消息,则向监控模块报告该情况;以及
如果确定已经成功处理了所述消息,则将所述消息发送到所述队列管理器。
5.根据权利要求2所述的方法,其中所述消息被放入死信处理模块以进行处理的步骤进一步包括:
确定所述死信处理模块是否已经成功处理所述消息;以及
如果确定没有成功处理所述消息,则向监控模块报告该情况。
6.根据权利要求3所述的方法,其中所述消息被放入第二异常处理模块进行处理的步骤进一步包括:
确定所述第二异常处理模块是否已经成功处理了所述消息;以及
如果确定没有成功处理所述消息,则向监控模块报告该情况。
7.根据权利要求1所述的方法,其中在所述第一应用向所述队列管理器发送所述消息之前,注册模块可以对所述消息进行匹配检查,并且仅当所述消息匹配时,才继续后续操作。
8.根据权利要求1所述的方法,其中所述队列管理器是队列管理器集群。
9.根据权利要求8所述的方法,其中所述由队列管理器对所接收到的消息进行处理进一步包括:
确定所述队列管理器集群中的一个队列管理器未能正常工作;
隔离所述一个队列管理器,使得不会再有新的消息路由到所述一个队列管理器;以及
由其余的队列管理器接管所述一个队列管理器的工作。
10.根据权利要求4所述的方法,其中所述确定所述第一异常处理模块是否已经成功处理了所述消息的步骤在预定时间间隔之后执行。
11.根据权利要求5所述的方法,其中所述确定所述死信处理模块是否已经成功处理所述消息的步骤在预定时间间隔之后执行。
12.根据权利要求6所述的方法,其中所述确定所述第二异常处理模块是否已经成功处理了所述消息的步骤在预定时间间隔之后执行。
13.一种基于消息队列的分布式系统,包括:
第一应用,所述第一应用被配置成向队列管理器发送消息;
第一异常处理模块,所述第一异常处理模块连接到所述第一应用,并且被配置成对所述第一应用没有成功发送的消息进行处理;
队列管理器,所述队列管理器与所述第一应用和所述第一异常处理模块相连,并且被配置成对所接收到的消息进行处理并且将所述消息发送到第二应用;以及
第二应用,所述第二应用连接到所述队列管理器,并且被配置成对所接收到的消息进行处理。
14.根据权利要求13所述的系统,进一步包括监控模块,所述监控模块被配置成对所述第一应用、所述队列管理器和所述第二应用进行监控。
15.根据权利要求13或14所述的系统,其中所述队列管理器进一步包括死信处理模块,所述死信处理模块被配置成对死信进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东世纪贸易有限公司,未经北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210410481.4/1.html,转载请声明来源钻瓜专利网。