基于STOMP协议的异常控制方法及装置与流程

文档序号:28697016发布日期:2022-01-29 12:32阅读:237来源:国知局
基于STOMP协议的异常控制方法及装置与流程
基于stomp协议的异常控制方法及装置
技术领域
1.本发明涉及多种协议处理技术,具体涉及一种基于stomp协议的异常控制方法及装置。


背景技术:

2.随着技术的发展,对信息时效性的要求越来越高,因此,stomp结合websocket这种能保持长连接且使用简单的全双工协议应用越来越普遍,stomp协议通过心跳报文保持websocket链接,如果服务端判断出现异常则主动发起带error头的报文,协议内部断掉websocket建立的tcp链接,在分布式微服务架构中也经常这样使用。
3.如图1所示,客户端通过网关转发协议,负载均衡选择一个业务服务建立websocket链接;但这其中也存在一些不确定因素,如:1、某些异常情况下,业务服务首先发起带error头的报文,该报文转发至客户端,客户端与网关之间的连接断掉,但是网关与业务服务之间连接继续存在,重复此步骤会导致tcp链接无线膨胀以至于服务器崩溃;2、某些异常情况下统一由服务器断掉所有链接,无法区分重要链接,以至于重要业务中断。


技术实现要素:

4.针对上述相关现有技术不足,本发明提供一种基于stomp协议的异常控制方法及装置,通过监控服务间tcp连接数量,及通过拦截带error头的报文,并将其扩展成特殊命令,使服务端不自动断掉链接且客户端能识别确认是否断开链接,确保重要任务最大可能的无损执行。
5.为了实现本发明的目的,拟采用以下方案:一种基于stomp协议的异常控制方法,应用于客户端、网关服务、多个业务服务之间建立有websocket链接的架构,包括步骤:在业务服务上配置网关服务地址,创建基于该地址的tcp链接监控线程,使用命令:netstat
ꢀ‑
apn | grep tcp | grep 网关ip,以监控tcp链接数;在业务服务中创建stomp异常拦截程序以进行stomp异常拦截;在业务服务中创建命令扩展程序,以在监控到tcp链接数大于预设阈值时,创建tcp链接超限报文,并在拦截到异常时,创建异常扩展报文;向已建立链接的异常客户端发送tcp链接超限报文和异常扩展报文;客户端收到tcp链接超限报文,发送异常报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;客户端收到异常扩展报文,判断当前websocket链接是否属于预设重要链接表中的链接:若是,则发送异常报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;若否,流程结束。
6.本发明的有益效果在于:最大可能的保持重要业务的畅通,同时避免了有websocket引起的tcp链接数量过高的问题,保障系统的正常运行。
附图说明
7.图1为微服务中websocket链接图。
8.图2为本申请实施例的异常控制装置结构框图。
9.图3为本申请实施例的异常控制方法流程图。
具体实施方式
10.为使本发明实施例的目的、技术方案和优点更加清楚,下面结合附图对本发明的实施方式进行详细说明,但本发明所描述的实施例是本发明一部分实施例,而不是全部的实施例。
11.本申请实施例的一个方面,提供一种基于stomp协议的异常控制方法,具体包括包括如下步骤,如图3所示:建立客户端、网关服务、多个业务服务之间的websocket链接;在业务服务上配置网关服务地址,创建基于该地址的tcp链接监控线程,使用命令:netstat
ꢀ‑
apn | grep tcp | grep 网关ip,以监控tcp链接数;在业务服务中创建stomp异常拦截程序,以进行stomp异常拦截;在业务服务中创建命令扩展程序,以在监控到tcp链接数大于预设阈值时,创建exceed头信息报文,并在拦截到异常(error头信息)时,创建exception头信息报文;向已建立连接的异常客户端发送exceed头信息报文和exception头信息报文;客户端收到exceed头信息报文,发送error头信息报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;客户端收到exception头信息报文,判断当前websocket链接是否属于预设重要链接表中的链接:若是,则发送error头信息报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;若否,流程结束。
12.本申请实施例的另一个方面,提供一种基于stomp协议的异常控制装置,应用于客户端、网关服务、多个业务服务之间建立有websocket链接的架构,如图2所示,包括:tcp监控模块、stomp异常处理模块、命令扩展模块、ws报文发送模块、客户端报文处理模块。
13.其中,tcp监控模块用于在业务服务上配置网关服务地址,创建基于该地址的tcp链接监控线程以监控tcp链接数;stomp异常处理模块用于在业务服务中创建stomp异常拦截程序以进行stomp异常拦截;命令扩展模块用于在业务服务中创建命令扩展程序,以在监控到tcp链接数大于预设阈值时,创建exceed头信息报文,并在拦截到异常(error头信息)时,创建exception头信息报文;
ws报文发送模块用于向已建立连接的异常客户端发送exceed头信息报文和exception头信息报文;客户端报文处理模块用于在客户端收到exceed头信息报文,发送error头信息报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;客户端报文处理模块还用于在客户端收到exception头信息报文,判断当前websocket链接是否属于预设重要链接表中的链接:若是,则发送error头信息报文到已建立连接的网关服务,并断掉websocket链接,然后进行自动重连;若否,流程结束。
14.本申请实施例的另一个方面,提供一种电子设备,包括:至少一个处理器和存储器;其中,存储器存储有计算机执行指令;在至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如前文实施例的基于stomp协议的异常控制方法。
15.本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,在计算机程序被处理器运行时控制存储介质所在设备执行如前文实施例的基于stomp协议的异常控制方法。
16.以上仅为本发明的优选实施例,并不表示是唯一的或是限制本发明。本领域技术人员应理解,在不脱离本发明的范围情况下,对本发明进行的各种改变或同等替换,均属于本发明保护的范围。


技术特征:
1.一种基于stomp协议的异常控制方法,应用于客户端、网关服务、多个业务服务之间建立有websocket链接的架构,其特征在于,包括步骤:在业务服务上配置网关服务地址,创建基于该地址的tcp链接监控线程以监控tcp链接数;在业务服务中创建stomp异常拦截程序以进行stomp异常拦截;在业务服务中创建命令扩展程序,以在监控到tcp链接数大于预设阈值时,创建tcp链接超限报文,并在拦截到异常时,创建异常扩展报文;向已建立链接的异常客户端发送tcp链接超限报文和异常扩展报文;客户端收到tcp链接超限报文,发送异常报文至网关服务,并断掉websocket链接,然后进行自动重连;客户端收到异常扩展报文,判断当前websocket链接是否属于预设重要链接表中的链接:若是,则发送异常报文至网关服务,并断掉websocket链接,然后进行自动重连;若否,流程结束。2.根据权利要求1所述的基于stomp协议的异常控制方法,其特征在于,创建基于网关服务地址的tcp链接监控线程,使用命令:netstat
ꢀ‑
apn | grep tcp | grep 网关ip。3.一种基于stomp协议的异常控制装置,应用于客户端、网关服务、多个业务服务之间建立有websocket链接的架构,其特征在于,包括:tcp监控模块,用于在业务服务上配置网关服务地址,创建基于该地址的tcp链接监控线程以监控tcp链接数;stomp异常处理模块,用于在业务服务中创建stomp异常拦截程序以进行stomp异常拦截;命令扩展模块,用于在业务服务中创建命令扩展程序,以在监控到tcp链接数大于预设阈值时,创建tcp链接超限报文,并在拦截到异常时,创建异常扩展报文;ws报文发送模块,用于向已建立链接的异常客户端发送tcp链接超限报文和异常扩展报文;客户端报文处理模块,用于在客户端收到tcp链接超限报文时,发送异常报文至网关服务,断掉websocket链接,然后进行自动重连;并用于在客户端收到异常扩展报文时,判断当前websocket链接是否属于预设重要链接表中的链接:若是,则发送异常报文至网关服务,断掉websocket链接,然后进行自动重连;若否,流程结束。4.根据权利要求3所述的基于stomp协议的异常控制装置,其特征在于,创建基于网关服务地址的tcp链接监控线程,使用命令:netstat
ꢀ‑
apn | grep tcp | grep 网关ip。5.一种电子设备,包括:至少一个处理器和存储器;其中,所述存储器存储有计算机执行指令;其特征在于,在所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1或2所述的基于stomp协议的异常控制方法。6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,在所述计算机程序被处理器运行时控制所述存储介质所在设备执行如权利要求1或2所述的基于stomp协议的异常控制方法。

技术总结
本发明提供一种基于STOMP协议的异常控制方法及装置,应用于客户端、网关服务、多个业务服务之间建立有WebSocket链接的架构,方法包括在业务服务上创建基于网关服务地址的TCP链接监控线程和STOMP异常拦截程序;在业务服务中创建命令扩展程序,以在监控到TCP链接数大于预设阈值时,创建TCP链接超限报文,并在拦截到异常时,创建异常扩展报文;向客户端发送TCP链接超限报文和异常扩展报文;客户端收到TCP链接超限报文,并断掉WebSocket链接,然后进行自动重连;收到异常扩展报文,判断是否重要链接:若是,则发送异常报文,并断掉WebSocket链接,然后进行自动重连;若否,流程结束。最大可能的保持重要业务的畅通,避免有WebSocket引起的TCP链接数量过高的问题。起的TCP链接数量过高的问题。起的TCP链接数量过高的问题。


技术研发人员:周鑫
受保护的技术使用者:四川安迪科技实业有限公司
技术研发日:2021.11.02
技术公布日:2022/1/28
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1