[发明专利]处理异步消息队列的方法及系统有效
申请号: | 201510442427.1 | 申请日: | 2015-07-24 |
公开(公告)号: | CN105068864B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 刘喜男 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 11219 中原信达知识产权代理有限责任公司 | 代理人: | 姜劲;陆锦华 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 异步 消息 队列 方法 系统 | ||
本发明提供一种能够正确按照优先级进行处理的、简便易行的处理异步消息队列的方法及系统。其中,该方法包括:生产者为每条消息设置优先级参数,将多条消息批量发送到消息队列,消息包括消息主体、消息关键字和优先级参数;消息队列保存消息;消费者从消息队列中消费消息;业务处理单元获取消费者的消费结果并参照优先级参数进行处理。
技术领域
本发明涉及计算机技术领域,具体涉及一种处理异步消息队列的方法及系统。
背景技术
消息队列处理以其异步处理、安全、稳定等特性,渗透到了当今互联网各个领域。生产者将产生的消息放入消息队列,消费者监听该消息队列并消费数据。有时候多个消息生产者向消息队列发送消息,但由于网络延迟等原因,无法保证消息队列以一定的优先级来接收消息,因此无法保证消费者按照一定优先级来消费数据。
通常地,现有技术中利用业务逻辑控制来保证数据的优先级。具体地:通过比较多条消息的特定业务属性(例如消息对应的版本号)来判断消息处理的先后顺序。该方案占用更多的内存空间及消耗更多的CPU资源,从而降低系统性能。
另外,现有技术中还采用数据库检索方式,该方案会占用更多的数据库连接,当大并发时会降低数据库处理性能,从而降低系统整体处理速度。
发明内容
有鉴于此,本发明提供一种能够正确按照优先级进行处理的、简便易行的处理异步消息队列的方法及系统。
为实现上述目的,根据本发明的第一方面,提供了一种处理异步消息队列的方法,包括:生产者为每条消息设置优先级参数,将多条消息批量发送到消息队列,所述消息包括消息主体、消息关键字和优先级参数;所述消息队列保存所述消息;消费者从所述消息队列中消费所述消息;业务处理单元获取所述消费者的消费结果并参照所述优先级参数进行处理。
可选地,所述消费者从所述消息队列中消费所述消息的步骤包括:所述消费者从所述消息队列中消费逐条读取消息;所述消费者将所述消息以有序集合类型存放于第一缓存队列中,同时所述消费者将所述消息的所述消息关键字以链表类型存放于第二缓存队列中,并且,所述业务处理单元获取所述消费者的消费结果并参照所述优先级参数进行处理的步骤包括:所述业务处理单元以阻塞方式监听所述第二缓存队列,当监听到所述消息关键字存入所述第二缓存队列时,清空当前本地缓存数据;所述业务处理单元从所述第一缓存队列中获取所述消息关键字对应的所有的、自动按所述优先级参数排序的所述消息中的所述消息主体缓存到本地,按顺序进行业务处理。
可选地,所述业务处理单元开启多个线程以阻塞方式监听所述第二缓存队列。
可选地,所述优先级参数采用正整数表示,数字越小优先级越高。
为实现上述目的,根据本发明的第二方面,提供了一种处理异步消息队列的系统,包括:生产者,用于为每条消息设置优先级参数,将多条消息批量发送到消息队列,所述消息包括消息主体、消息关键字和优先级参数;所述消息队列,用于保存所述消息;消费者,用于从所述消息队列中消费所述消息;业务处理单元,用于获取所述消费者的消费结果并参照所述优先级参数进行处理。
可选地,还包括:第一缓存队列,用于以优先级有序集合类型存放所述消息;第二缓存队列,用于以链表类型存放所述消息的所述消息关键字;所述消费者还用于从所述消息队列中逐条读取消息,然后将所述消息以优先级有序集合类型存放于第一缓存队列中,并且将所述消息的所述消息关键字以链表类型存放于第二缓存队列中;所述业务处理单元还用于以阻塞方式监听所述第二缓存队列,当监听到所述消息关键字存入所述第二缓存队列时,清空当前本地缓存数据,然后从所述第一缓存队列中取出所述消息关键字对应的所有的、自动按所述优先级参数排序的所述消息中的消息主体缓存到本地,按顺序进行业务处理。
可选地,所述业务处理单元开启多个线程以阻塞方式监听所述第二缓存队列。
可选地,所述优先级参数采用正整数表示,数字越小优先级越高。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510442427.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于电路板的下板工具
- 下一篇:烧结管式超滤膜