[发明专利]基于RocketMQ的消息订阅方法及组件、消息订阅系统有效
申请号: | 201811136394.8 | 申请日: | 2018-09-27 |
公开(公告)号: | CN110956485B | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 蒋文倩;徐盛;汤严敏 | 申请(专利权)人: | 千寻位置网络有限公司 |
主分类号: | G06Q30/02 | 分类号: | G06Q30/02;G06Q30/06 |
代理公司: | 上海一平知识产权代理有限公司 31266 | 代理人: | 成春荣;竺云 |
地址: | 200438 上海市杨浦区国权北*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 rocketmq 消息 订阅 方法 组件 系统 | ||
本发明适用物联网技术领域,提供了一种基于RocketMQ的消息订阅方法及组件、消息订阅系统,所述消息订阅方法包括:对消息消费者列表中的订阅规则及消息过滤规则进行适配,其中,所述订阅规则及消息过滤规则与消息主题和消息标识相关;接收到消息通知时,轮询所述消息消费者列表,查找与所述消息通知中的所述订阅规则及消息过滤规则对应的所述消息消费者;执行相应的消费逻辑。本发明中,将消息消费者的消息订阅粒度细化至消息标识级别,使得有新的业务目的产生时,只需要新增加一个消息消费者即可,减少了变更实现带来的业务风险。
技术领域
本发明属于物联网技术领域,尤其涉及一种基于RocketMQ的消息订阅方法及组件、消息订阅系统。
背景技术
电商系统中通常需要收发异步消息,实现不同工程之间的解耦,如创建订单后异步健全日志,清除购物车,发送通知邮件等,此场景下消费者可以通过订阅某一消息主题(topic)下的消息实现,当新增一种业务场景,如支付订单后开通服务,常规的做法是在订阅消息的同时,增加消息过滤机制,如tag来区分不同业务目的。不同的消息标识(tag)对应不同的条件分支,实现不同的消费逻辑。但每次新增加业务场景就需要在原有的消费逻辑中增加一个条件分支,如此操作会对业务逻辑有很强的入侵性,且不便于业务维护管理。
目前在Spring框架中集成Rocket消息队列(Message Queue,MQ)有以下方式。
1)将消息生产者和消费者定义成bean对象交由Spring容器管理。
2)使用RocketMQ的外部项目rocketmq-spring-boot-starter收发消息。
以上方案中都能实现本方案中对RocketMQ生产者(Product)、消费者(Consumer)的封装及管理,但仍是通过topic订阅消息,通过tag进行条件判断来过滤消息。当有新的业务目的时,需要变更Consumer的消费逻辑。
发明内容
本发明实施例提供了一种基于RocketMQ的消息订阅方法及组件、消息订阅系统,旨在解决现有技术的有新的业务目的产生时,由于需要在原有的消息消费者列表上添加条件分支,增加了变更实现带来的业务风险的问题。
一种基于RocketMQ的消息订阅方法,包括:
对消息消费者列表中的订阅规则及消息过滤规则进行适配,其中,所述订阅规则及消息过滤规则与消息主题和消息标识相关;
接收到消息通知时,轮询所述消息消费者列表,查找与所述消息通知中的所述订阅规则及消息过滤规则对应的所述消息消费者;
执行相应的消费逻辑。
优选地,同一所述消息主题下包括多个所述消息标识不同的所述消息消费者。
优选地,对消息消费者列表中的订阅规则及消息过滤规则进行适配,包括:
将所述消息主题和所述消息标识相同的所述消息消费者合并;
没有指定所述消息标识时,自动订阅所述消息主题下的所有消息。
优选地,所述对消息消费者列表中的订阅规则及消息过滤规则进行适配之前,包括:
将实现了消息消费接口类的所述消息消费者自动加载进所述消息消费者列表中;
统一管理完成所述消息消费者的创建。
优选地,所述对消息消费者列表中的订阅规则及消息过滤规则进行适配之前,包括:
对消息生产者进行统一管理,把所述消息生产者对象的生命周期分成构造函数,实例化、清理三个方法。
优选地,所述把消息生产者对象的生命周期分成构造函数,实例化、清理三个方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于千寻位置网络有限公司,未经千寻位置网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811136394.8/2.html,转载请声明来源钻瓜专利网。