[发明专利]基于消息队列和搜索引擎实现服务回调的方法有效
申请号: | 202110107934.5 | 申请日: | 2021-01-27 |
公开(公告)号: | CN112799860B | 公开(公告)日: | 2023-02-21 |
发明(设计)人: | 潘震 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/901;G06F16/955 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 队列 搜索引擎 实现 服务 方法 | ||
本发明公开了一种基于消息队列和搜索引擎实现服务回调的方法,属于信息技术服务领域,本发明要解决的技术问题为如何保障回调服务实现的高性能,满足业务需求的实际使用,采用的技术方案为:该方法具体如下:客户端发起业务功能请求;业务后台根据业务功能请求决定请求服务端发起回调服务;服务端发起回调服务请求,请求信息进入RabbitMq消息队列;请求信息持久化进入Elasticsearch搜索引擎;消费端Consumer根据回调规则执行回调服务;服务端根据回调服务的执行结果更新数据记录。
技术领域
本发明属于信息技术服务领域,涉及到消息中间件开发、搜索引擎、日志处理、HTTP服务调用、数据检索等技术,具体地说是一种基于消息队列和搜索引擎实现服务回调的方法。
背景技术
建设统一的API服务网关,对API进行全生命周期的管理和使用是近几年信息系统建设中非常常用的一种手段,传统的API请求都是端到端,请求发起-服务端响应-返回结果的流程,不能满足相对比较复杂的业务逻辑判断。
在实际情况中存在多端(PC端,移动端,自助终端等)中某一个发起事件,其他客户端也要获取到该请求整个过程状态的需求。目前通常的做法是采用多端同源数据的方式保证数据查询一致性,但是这种解决方式存在实际使用的诸多问题。
故如何保障回调服务实现的高性能,满足业务需求的实际使用是目前亟待解决的问题。
发明内容
本发明的技术任务是提供一种基于消息队列和搜索引擎实现服务回调的方法,来解决如何保障回调服务实现的高性能,满足业务需求的实际使用的问题。
本发明的技术任务是按以下方式实现的,一种基于消息队列和搜索引擎实现服务回调的方法,该方法是将API服务和回调服务进行组合,形成一个功能包;该功能包用于描述完成一类业务协作所需要的服务,使用方接入的最小单位即功能;同时制定回调服务的生效规则,当服务端发起回调服务时根据参数规则,回调正确的回调服务;具体如下:
客户端发起业务功能请求;
业务后台根据业务功能请求决定请求服务端发起回调服务;
服务端发起回调服务请求,请求信息进入RabbitMq消息队列;
请求信息持久化进入Elasticsearch搜索引擎;
消费端Consumer根据回调规则执行回调服务;
服务端根据回调服务的执行结果更新数据记录。
作为优选,客户端发起业务功能请求具体如下:
客户端发起HTTP请求,请求进入统一的服务网关;
通过服务网关权限校验后,生成全局唯一的标识ID;其中,ID以链路traceId为基础,作为整个服务链路流转过程的监控依据。
作为优选,请求信息持久化进入Elasticsearch搜索引擎(此时数据状态为已持久化未发送)的同时执行如下操作:
将请求ID和API URL发送至RabbitMq消息队列;
通过监听RabbitMq消息队列确认回调接口,对已经被Broker接收的消息进行状态更新;其中,数据状态更新为已发送未处理。
作为优选,消费端Consumer根据回调规则执行回调服务具体如下:
根据回调规则确定需要发起的回调服务列表;
基于LRU算法进行回调线程池的管理实现;
从回调线程池中取出需要回调的服务列表;
逐个发起HTTP请求,完成服务端的主动回调请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110107934.5/2.html,转载请声明来源钻瓜专利网。