[发明专利]分布式消息异步通知中间件实现方法及系统在审
申请号: | 202110450975.4 | 申请日: | 2021-04-26 |
公开(公告)号: | CN112988428A | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | 沈浩 | 申请(专利权)人: | 南京蜂泰互联网科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 南京常青藤知识产权代理有限公司 32286 | 代理人: | 高远 |
地址: | 210012 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 消息 异步 通知 中间件 实现 方法 系统 | ||
本发明提供分布式消息异步通知中间件实现方法及系统,接收HTTP请求并将其持久化至数据库中,并根据优先级别进行分类;对于优先级别高的请求实时处理;将优先级别正常的数据推送至延迟队列池中等待固定时间后进行处理;判断处理后的响应报文是否包含设置的期望内容;若响应报文包含期望内容,则将信息状态更新为成功,该任务结束;若响应报文不包含期望内容,则计算失败次数并判断其是否已达配置设定的最大重试次数;若失败次数小于最大重试次数,将对应的请求消息推送至延迟队列池,重复等待处理;若失败次数大于最大重试次数,则调用通信软件进行异常告警通知,任务结束。实现了分布式系统异步通知消息可追溯与异常告警,保证业务闭环。
技术领域
本发明涉及计算机应用技术领域,具体涉及分布式消息异步通知中间件实现方法及系统。
背景技术
在信息系统交互下经常会有通知内部服务或外部系统异步接口的出现。因HTTP请求的不可控性会出现HTTP请求接口响应失败(响应状态码值为403,500,502,503等视为请求失败)或者连接超时。发生的情况是浏览器开始侦听该服务器的响应消息,但是由于各种原因该响应可能永远不会到达(例如,服务器处于脱机状态)。因此,如果X秒钟后服务器仍然没有响应,您的浏览器将在等待时“放弃”,否则可能会因为等待永恒而卡住,响应结果报文超时等导致业务应用系统出现两边业务不一致行为。例如应用系统A与B系统交互支付业务,A系统支付状态为支付成功,但B系统支付状态为失败,实际业务支付状态为成功。
这是一种典型的分布式系统事务问题。业内的通用做法如下:
采用定时任务轮询补偿的方法,通过定时任务(固定时间频率的任务)扫描因HTTP请求失败或异常的信息以补偿的形式通知(将失败的业务再执行一次)。这种做法较为古老,且性能较低。每一个业务用例场景都需要写定时任务做补偿。当业务发展较快用例场景较多则对应的定时任务较多产生定时任务爆炸问题。
采用单体式内存重试(如spring retry)的方法,此种方式是在内存中做重试机制,如果应用服务重启则会断开导致信息丢失,导致业务不一致。例如网络服务A因操作系统重启,操作系统重启会将内存中的内容清空返回初始状态。而当时未完成的任务就会丢失,从而导致业务未完成,对公司产生的一定的损失。
发明内容
本发明的目的是提供分布式消息异步通知中间件实现方法及系统,解决分布式系统异步通知消息可追溯性,解决分布式系统业务最终一致性问题,能够及时对易想金聪告警。
本发明提供了如下的技术方案:
分布式消息异步通知中间件实现方法及系统,包括以下步骤:
S1、中间件接收HTTP请求并将请求的消息持久化至数据库中,并将持久化成功后的数据根据优先级别高与优先级别正常进行分类;
S2、对于优先级别高的请求实时进行处理;对于优先级别正常的数据推送至RabbitMQ延迟队列池中,根据事先设定的队列延迟策略,对到达延迟时间后的延迟队列消息进行处理;
S3、以HTTP接口形式调用外部系统对上述数据进行处理,并判断响应报文是否包含设置的期望内容;
S4、若所述响应报文包含所述期望内容,则将信息状态更新为成功,该请求消息对应的任务完成并结束;若所述响应报文不包含所述期望内容,则计算失败次数并判断其是否已达配置事先设定的最大重试次数;
S5、若失败次数小于最大重试次数,将对应的请求消息推送至延迟队列池,并重复S2-S4;若失败次数大于最大重试次数,则调用通信软件进行异常告警通知,任务结束。
优选的,步骤S5所述的通信软件为钉钉。
优选的,所述RabbitMQ为实现了高级消息队列协议的开源消息代理软件。
优选的,包括:
信息接收模块,接收用户通过应用软件发送的消息请求,并将请求消息进行持久化处理,将持久化成功后的消息传输至数据库;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京蜂泰互联网科技有限公司,未经南京蜂泰互联网科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110450975.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:环肽PIZ及其用途
- 下一篇:一种基于社交网络的逃废债行为识别方法及系统