[发明专利]消息中间件的并发消费方法以及装置在审
| 申请号: | 202011032153.6 | 申请日: | 2020-09-27 |
| 公开(公告)号: | CN112181683A | 公开(公告)日: | 2021-01-05 |
| 发明(设计)人: | 石力;丰朋;吴丰科 | 申请(专利权)人: | 中国银联股份有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京市中伦律师事务所 11410 | 代理人: | 钟锦舜 |
| 地址: | 201203 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 消息 中间件 并发 消费 方法 以及 装置 | ||
1.一种消息中间件的消息并发处理方法,其特征在于,包括:
消费线程从消息队列中提取消息,并将提取的消息存储至缓存队列中;
采用线程池中的工作线程并发处理所述缓存队列中的消息,同时返回执行所述消费线程从消息队列中提取消息并将提取的消息存储至缓存队列中的步骤,直至所述消息队列中的消息处理完成。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述缓存队列中的消息达到阈值的情况下,停止对所述缓存队列中的消息进行处理。
3.根据权利要求1所述的方法,其特征在于,所述消费线程从消息队列中提取消息,并将提取的消息存储至缓存队列中,包括:
每个所述消费线程从所述消息队列为kafka集群中每个分区提取多个消息,并将同一个分区提取的消息存储至同一个缓存队列中。
4.根据权利要求3所述的方法,其特征在于,所述采用线程池中的多个工作线程并发处理所述缓存队列中的消息,包括:
采用单个线程池中的多个工作线程,按照预设消费顺序处理各个缓存队列中的消息。
5.根据权利要求1所述的方法,其特征在于,所述消费线程从消息队列中提取消息,并将提取的消息存储至缓存队列中,包括:
每个所述消费线程从所述消息队列为kafka集群中每个分区提取多个消息,并将同一个分区提取的消息存储至多个缓存队列中。
6.根据权利要求5所述的方法,其特征在于,所述采用线程池中的多个工作线程并发处理所述缓存队列中的消息,包括:
为每个缓存队列分配对应的线程池,采用分配的线程池中多个工作线程处理对应的缓存队列中的消息。
7.根据权利要求1所述的方法,其特征在于,还包括:
在所述缓存队列中有消息丢失的情况下,生产线程停止生产用于发布至所述消息队列中的消息。
8.一种消息中间件的消息并发处理装置,其特征在于,包括:
消息提取模块,用于消费线程从消息队列中提取消息,并将提取的消息存储至缓存队列中;
消息处理模块,用于采用线程池中的工作线程并发处理所述缓存队列中的消息,同时返回执行所述消费线程从消息队列中提取消息并将提取的消息存储至缓存队列中的步骤,直至所述消息队列中的消息处理完成。
9.根据权利要求8所述的装置,其特征在于,还包括:
处理停止模块,用于在所述缓存队列中的消息达到阈值的情况下,停止对所述缓存队列中的消息进行处理。
10.根据权利要求8所述的装置,其特征在于,所述消息提取模块,包括:
第一提取子模块,用于每个所述消费线程从所述消息队列为kafka集群中每个分区提取多个消息,并将同一个分区提取的消息存储至同一个缓存队列中。
11.根据权利要求10所述的装置,其特征在于,所述消息处理模块,包括:
第一处理子模块,用于采用单个线程池中的多个工作线程,按照预设消费顺序处理各个缓存队列中的消息。
12.根据权利要求8所述的装置,其特征在于,所述消息提取模块,包括:
第二提取子模块,用于每个所述消费线程从所述消息队列为kafka集群中每个分区提取多个消息,并将同一个分区提取的消息存储至多个缓存队列中。
13.根据权利要求12所述的装置,其特征在于,所述消息处理模块,包括:
第二处理子模块,用于为每个缓存队列分配对应的线程池,采用分配的线程池中多个工作线程处理对应的缓存队列中的消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银联股份有限公司,未经中国银联股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011032153.6/1.html,转载请声明来源钻瓜专利网。





