[发明专利]一种消息推送方法、系统、计算设备与可读存储介质在审
申请号: | 202210046851.4 | 申请日: | 2022-01-14 |
公开(公告)号: | CN114461419A | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 宗高峰 | 申请(专利权)人: | 车智互联(北京)科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/448;G06F8/30;G06F8/36;G06F8/73 |
代理公司: | 北京思睿峰知识产权代理有限公司 11396 | 代理人: | 谢建云;赵爱军 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 推送 方法 系统 计算 设备 可读 存储 介质 | ||
本发明公开了一种消息推送方法、系统、计算设备与可读存储介质。上述消息推送方法包括步骤:响应于用户的消息推送请求,对应用开发框架扫描到的带有注解的消息推送组件进行解析,得到所述消息推送组件的注解信息,所述注解信息包括配置信息;根据所述注解信息为所述消息推送组件生成动态代理对象,并将所述动态代理对象注入到所述框架对应容器中;以及执行所述消息推送组件对应的真实推送逻辑,完成消息推送。上述消息推送系统,包括:系统服务器;以及与所述系统服务器通信连接的若干个MQ服务器。本发明一并公开了相应的计算设备与可读存储介质。
技术领域
本发明涉及微服务架构的消息推送技术领域,尤其是一种用于微服务架构的消息推送方法、装置、计算设备与可读存储介质。
背景技术
随着业务发展,单体应用的架构已经不能支撑庞大的后端业务,因此服务端微服务化是必然趋势。而对于微服务的拆分,动辄拆分出几十个或上百个微服务,服务之间的通信方式不局限于同步通信,还包含了异步消息通信。异步消息通信可在一定程度上提升应用的吞吐量、降低应用的耦合度,但也增加了开发和维护的复杂度。基于消息的异步通信开发,除了本身的业务逻辑之外,还需要考虑消息传递的顺序性、消息的重复消费、消息的丢失、以及消息的重试等。
以旅行商城系统为例,可以根据不同的业务场景将旅行商城系统拆分为不同的服务,如机票服务、酒店服务、火车票服务、订单服务、优惠系统、以及支付系统等,而不同服务直接的状态同步、消息通知等均需借助于异步消息通信来实现。异步消息通信可以降低服务之间的耦合度,提升应用的吞吐量,保证数据的最终一致性。借助于异步消息通信机制,可以保证订单状态的最终一致性,并提升活动抢券的并发量。
业界通常借助于MQ服务器来实现异步消息通信,主流的MQ服务有RabbitMQ、RocketMQ、以及Kafka等。而不同的消息服务器的特性不同,Java操作方式也不尽相同,主流客户端框架有spring-amqp、spring-kafka等。对于消息重试,业界主要靠自定义while循环或借助于spring-retry实现。
对于服务间的异步消息推送,业界主要借助于MQ服务器来实现,而连接MQ服务器的客户端框架主要有spring-amqp和spring-kafka等。Spring封装了AMQP协议,对外提供了一组高度封装的API,允许任何POJO作为消息体进行消息传播。Spring框架做到了开发人员对于AMQP协议的无感知,在一定程度上简化了异步消息推送的操作,但是,由于不同的消息服务器特性不同,用法也不同,如RabbitMQ主要涉及交换机、路由键、以及队列等概念,而Kafka主要涉及消费组、分区、以及队列等概念,开发人员需要充分掌握这些特性,还需要掌握各种MQ的应用特点、客户端集成框架原理、以及消息重试机制等;因此,将Spring框架应用在复杂的微服架构中实现消息推送,并未做到使开发人员对于MQ服务器无感知,对开发人员的技术要求仍然很高。
发明内容
为此,本发明提供了一种消息推送方法、装置、计算设备与可读存储介质,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种消息推送方法,适用于应用开发框架,所述方法包括步骤:响应于用户的消息推送请求,对所述框架扫描到的带有注解的消息推送组件进行解析,得到所述消息推送组件的注解信息,所述注解信息包括配置信息;根据所述注解信息为所述消息推送组件生成动态代理对象,并将所述动态代理对象注入到所述框架对应的容器中;以及执行所述消息推送组件对应的真实推送逻辑,完成消息推送。
可选地,在根据本发明的消息推送方法中,所述配置信息包括交换机和路由键。
可选地,在根据本发明的消息推送方法中,所述的对所述框架扫描到的带有注解的消息推送组件进行解析的步骤包括:利用所述框架进行组件扫描;当扫描到预定的扫描触发组件时,开始进行推送组件扫描,得到带有注解的消息推送组件;以及对所述带有注解的消息推送组件进行解析,得到所述注解中的配置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于车智互联(北京)科技有限公司,未经车智互联(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210046851.4/2.html,转载请声明来源钻瓜专利网。