[发明专利]消息队列系统以及实现消息通信的方法有效
申请号: | 201510413284.1 | 申请日: | 2015-07-14 |
公开(公告)号: | CN107038075B | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 张俊;何乐;张杰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 李辉 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 队列 系统 以及 实现 通信 方法 | ||
1.一种消息队列系统,其特征在于,包括:第一缓冲区、第二缓冲区以及持久化存储区;其中,所述第一缓冲区和第二缓冲区位于消息生产者和消息消费者所在的服务器的内存中,所述第二缓冲区包括主缓冲区和备缓冲区;
所述第一缓冲区,用于缓存消息生产者推送的消息,将消息生产者推送的消息存储到所述持久化存储区中,并将已存储到所述持久化存储区的消息发送给所述第二缓冲区;
所述持久化存储区,用于通过持久化存储介质对所述第一缓冲区发送的消息进行持久化存储;
所述备缓冲区,用于缓存所述第一缓冲区发送的消息;
所述主缓冲区,用于将位于所述主缓冲区的消息传递给消息消费者,在将位于所述主缓冲区的消息全部传递给消息消费者之后,与所述备缓冲区进行主备切换。
2.根据权利要求1所述的系统,其特征在于,
所述备缓冲区还用于,在缓存所述第一缓冲区发送的消息之前,检查自身是否存在内存溢出,如果存在内存溢出,丢弃所述第一缓冲区发送的消息,并将自身的当前状态标记为非正常状态,如果不存在内存溢出,继续缓存所述第一缓冲区发送的消息;
所述主缓冲区还用于,在与所述备缓冲区进行主备切换之前,检查所述备缓冲区的当前状态是否为正常状态,如果为非正常状态,不与所述备缓冲区进行主备切换,而从所述持久化存储区中读取消息,并将读取的消息传递给消息消费者,如果为正常状态,继续与所述备缓冲区进行主备切换。
3.根据权利要求2所述的系统,其特征在于,所述主缓冲区还用于,在从所述持久化存储区中读取消息之后,判断在所述备缓冲区中是否存在下一个读取的消息,如果存在,将所述备缓冲区的当前状态标记为正常状态,如果不存在,维持所述备缓冲区的当前状态。
4.根据权利要求1所述的系统,其特征在于,所述持久化存储区位于所述服务器外部的分布式文件系统中。
5.根据权利要求1至4中任意一项所述的系统,其特征在于,所述主缓冲区和备缓冲区为同构的缓冲区。
6.根据权利要求1至4中任意一项所述的系统,其特征在于,所述消息生产者和消息消费者为运行在所述服务器上的两个进程或者为运行在所述服务器上的一个进程中的两个线程。
7.一种实现消息通信的方法,其特征在于,预先在消息生产者和消息消费者所在的服务器的内存中建立第一缓冲区和第二缓冲区,所述第二缓冲区包括主缓冲区和备缓冲区,所述方法包括:
第一缓冲区缓存消息生产者推送的消息,将消息生产者推送的消息存储到持久化存储区中,以便将所述消息持久化地存储在所述持久化存储区中;
第一缓冲区将已存储到所述持久化存储区的消息发送给第二缓冲区;
备缓冲区缓存第一缓冲区发送的消息;
主缓冲区将位于主缓冲区的消息传递给消息消费者,在将位于所述主缓冲区的消息全部传递给消息消费者之后,与备缓冲区进行主备切换。
8.根据权利要求7所述的方法,其特征在于,
所述方法还包括:
在缓存第一缓冲区发送的消息之前,备缓冲区检查自身是否存在内存溢出,如果存在内存溢出,丢弃所述第一缓冲区发送的消息,并将自身的当前状态标记为非正常状态;
在与备缓冲区进行主备切换之前,主缓冲区检查备缓冲区的当前状态是否为正常状态,如果为非正常状态,不与备缓冲区进行主备切换,而从持久化存储区中读取消息,以便将读取的消息传递给消息消费者;
则所述备缓冲区缓存第一缓冲区发送的消息为:
如果不存在内存溢出,备缓冲区缓存第一缓冲区发送的消息;
则所述主缓冲区与备缓冲区进行主备切换为:
如果为正常状态,主缓冲区与备缓冲区进行主备切换。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在从持久化存储区中读取消息之后,主缓冲区判断在备缓冲区中是否存在下一个读取的消息,如果存在,将所述备缓冲区的当前状态标记为正常状态,如果不存在,维持所述备缓冲区的当前状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510413284.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:室内定位装置、方法和系统
- 下一篇:一种数据恢复方法和装置