[发明专利]一种ACTIVEMQ消费者处理消息的动态平衡协调方法及协调系统在审
| 申请号: | 202310159572.3 | 申请日: | 2023-02-23 |
| 公开(公告)号: | CN116346915A | 公开(公告)日: | 2023-06-27 |
| 发明(设计)人: | 温桂龙;王柏涛;吴云星;陆锦伟;赵炎 | 申请(专利权)人: | 珠海派诺科技股份有限公司 |
| 主分类号: | H04L67/566 | 分类号: | H04L67/566;H04L47/62 |
| 代理公司: | 广州市越秀区哲力专利商标事务所(普通合伙) 44288 | 代理人: | 舒剑晖 |
| 地址: | 519085 广东省珠海市高新*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 activemq 消费者 处理 消息 动态平衡 协调 方法 系统 | ||
本发明实施例涉及通信技术领域,公开了一种ACTIVEMQ消费者处理消息的动态平衡协调方法及协调系统,该方法包括:若消费者组内存在有多个消费者,将Redis数据库中指定消息队列的所有分区按照消费者的数量进行平均分配,以获得消费者组内每一消费者对象的订阅分区;将消费者对象及对应的订阅分区存储至Redis数据库中。实施本发明实施例,能够让指定消息队列的各个分区固定分配到指定消费者对象进行处理,以达到负载均衡和高可用的效果。
技术领域
本发明涉及通信技术领域,尤其涉及一种ACTIVEMQ消费者处理消息的动态平衡协调方法及协调系统。
背景技术
目前,现有的ACTIVEMQ消息队列在默认情况下一般提供的是Queue模式。其中,在Queue模式中,当一个Queue有多个消费者时,消费者按照先后顺序排队,队首的消费者从Queue首接收一条消息后从队首位置返回队尾位置重新进行排队。比如一个生产者发送了编号为1-5的消息,假设该Queue有两个消费者分别命名为c1和c2,c1在前、c2在后,按照上述规则,c1收到消息为1,3,5,c2收到消息2,4。
但在实践中发现,Queue模式的消息只能在多消息者订阅该队列时,随机分配消息给订阅了该队列的消费者,无法满足需要按某个特定标识指定订阅,而且当消费者进程不存在时,无法故障转移。而在我们采集平台中实时数据处理服务对实时数据要求是状态的,队列中的数据不能随机分发给不同的消息者,会造成数据错乱。
发明内容
本发明实施例公开一种ACTIVEMQ消费者处理消息的动态平衡协调方法及协调系统,能够让指定消息队列的各个分区固定分配到指定消费者对象进行处理,以达到负载均衡和高可用的效果。
本发明实施例第一方面公开一种ACTIVEMQ消费者处理消息的动态平衡协调方法,所述方法包括:
若消费者组内存在有多个消费者,将Redis数据库中指定消息队列的所有分区按照所述消费者的数量进行平均分配,以获得所述消费者组内每一消费者对象的订阅分区;
将所述消费者对象及对应的所述订阅分区存储至所述Redis数据库中。
作为另一种可选的实施方式,在本发明实施例第一方面中,所述将所述消费者对象及对应的所述订阅分区存储至所述Redis数据库中之后,所述方法还包括:
在任一所述消费者对象的进程发生异常时,检测异常消费者对象内是否存在有订阅分区;若是,将异常消费者对象订阅分区按照所述消费者组内正常消费者对象的数量进行平均分配,以获得所述正常消费者对象的新订阅分区;
将所述Redis数据库中的所述消费者对象及对应的所述订阅分区进行注销,并将所述正常消费者对象及对应的所述新订阅分区存储至所述Redis数据库中。
作为另一种可选的实施方式,在本发明实施例第一方面中,所述在任一所述消费者对象的进程发生异常时,检测异常消费者对象内是否存在有订阅分区之后,以及所述将异常消费者对象订阅分区按照正常消费者对象的数量进行平均分配,以获得所述正常消费者对象的新订阅分区之前,所述方法还包括:
若检测出所述异常消费者对象内存在有所述订阅分区时,检测每一所述正常消费者对象内的订阅分区数量是否小于所述指定消息队列的所有分区数量除以所述正常消费者对象的数量的商值;
若是,将所述正常消费者对象的订阅分区状态变更为待分配状态;
执行将异常消费者对象订阅分区按照所述消费者组内正常消费者对象的数量进行平均分配,以获得所述正常消费者对象的新订阅分区的操作;
以及,所述将所述Redis数据库中的所述消费者对象及对应的所述订阅分区进行注销,并将所述正常消费者对象及对应的所述新订阅分区存储至所述Redis数据库中之后,所述方法还包括:
将所述正常消费者对象的订阅分区状态变更为已分配状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海派诺科技股份有限公司,未经珠海派诺科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310159572.3/2.html,转载请声明来源钻瓜专利网。





