1.本技术涉及云计算技术领域,尤其涉及一种数据限流
方法、装置、电子设备及存储介质。
背景技术:
2.目前,在城市大脑、城市治理、智慧交通等安防相关领域,随着接入的视音频采集设备规模不断扩大,为了方便视音频服务平台以中心化的方式进行统一管理和调度,不仅需要能够满足不同的交付部署场景(公有云、专有云)下大量视音频采集设备的稳定接入,还要能够在视音频服务平台实现摄像头的并发直播、控制、设备管理等需求。
3.基于上述背景,各大视频安防厂商以及云厂商推出了大量面向视音频采集设备接入管控的视音频服务平台,但是,现有的视音频服务平台更多的关注于视音频协议支持的完整性,以及厂商碎片化支持的多样性,对于整个视音频服务平台的高可用性、稳定性和安全性考虑较少,而这些因素会随着视音频服务平台的使用量日渐增长变得更加严重和凸显。因此,需要一种解决方案以保障视音频服务平台的高可用性、稳定性和安全性。
技术实现要素:
4.本技术实施例提供一种数据限流方法、装置、电子设备及存储介质,以保障视音频服务平台的高可用性、稳定性和安全性。
5.第一方面,本技术实施例提供了一种数据限流方法,该方法包括:
6.响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的
类型信息和特征信息;
7.根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;
8.根据第一限流策略,对多媒体通信相关请求进行相应的处理。
9.第二方面,本技术实施例提供了一种数据限流装置,该装置包括:
10.获取模块,用于响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息;
11.确定模块,用于根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;
12.限流模块,用于根据第一限流策略,对多媒体通信相关请求进行相应的处理。
13.第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行
所述计算机程序时实现上述任一项所述的方法。
14.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
15.与现有技术相比,本技术具有如下优点:
16.本技术提供了一种数据限流方法、装置、电子设备及存储介质,响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特
征信息;根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;根据第一限流策略,对多媒体通信相关请求进行相应的处理。本实施例中,根据多媒体通信相关请求中的请求方法的类型信息和特征信息确定限流策略,通过限流策略对多媒体通信相关请求进行相应的处理,以实现保障视音频服务平台的高可用性、稳定性和安全性。而且,根据请求方法的类型信息和特征信息,可以确定细粒度的和差异化的限流策略,以保障视音频服务平台的服务质量。
17.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,可依照说明书的内容予以实施,并且为了让本技术的上述和其他目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
18.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术的一些实施方式,而不应将其视为是对本技术范围的限制。
19.图1为本技术提供的数据限流方法的一个应用场景示意图;
20.图2为本技术一实施例的数据限流方法的流程图;
21.图3是本技术一实施例的对于sip请求和响应消息进行分析的流程图;
22.图4是本技术一实施例的数据限流方法的流程图;
23.图5是本技术一实施例的数据限流装置的结构框图;以及
24.图6为用来实现本技术实施例的电子设备的框图。
具体实施方式
25.在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本技术的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
26.为便于理解本技术实施例的技术方案,以下对本技术实施例的相关技术进行说明。以下相关技术作为可选方案与本技术实施例的技术方案可以进行任意结合,其均属于本技术实施例的保护范围。
27.视频服务平台自身同时承载了实时直播、录像回放、视频下载、设备注册、事件订阅和设备控制等结构化数据和非结构化数据的服务功能,对于服务的稳定性、可用性相比一般的网页服务器具有更高的要求。但是整个平台和网络的容量是有限的,既要满足接入的大量设备不同的服务处理和传输请求流量,还要能够抵挡暴露在公网后很有可能出现的恶意攻击流量。有鉴于此,视频服务平台迫切需要一个符合其通信协议和服务特征的限流方案,在访问的请求即将或已经造成整个视音频服务平台(网络带宽)接近容量阈值时,能够及时采取限流措施,从而实现对于视频服务平台的保护,保障视频服务平台整体的可用性和服务质量。
28.相关技术中,通过视音频服务平台中的服务器在响应消息的响应头中携带自定义的响应头来表明服务器出现过载的情况,然后客户端根据该显式的过载指示信息,通过重传、超时等待等手段来降低该客户端对视音频服务平台的请求压力。然而,该方案依赖于客
户端的支持,客户端需要定制化改造。而且,该方案依赖于服务器返回额外的过载指示信息,一方面需要对现有的服务器的协议栈进行改动;另一方面,由于服务器需要对每个请求进行响应,才能确保每个客户端都能了解服务器的负载情况,服务器很可能在自身已经过载的情况下,回复每个响应消息,这样会进一步加剧网络的拥塞,耗费网络的带宽,更进一步降低视频服务平台整体的吞吐量。另外,该方案在实际应用中存在安全性和公平性问题,因为该方案依赖于客户端的主动控制,对于部分未解析响应头的客户端,或者可以直接忽略的“恶意”攻击者,该方案无法进行限流,会造成“恶意”攻击者的客户端抢占了“合法”客户端本来能够占用的服务器资源和网络带宽。
29.有鉴于此,本技术实施例提供了一种数据限流方法,图1为本技术提供的数据限流方法的一个应用场景示意图。如图1所示,本实施例提供的数据限流方法可以通过限流系统的形式来实现。限流系统可以单独部署在一个服务器中,也可以部署在视音频服务平台的服务器中。本实施例中,视音频服务平台为gb28181平台,gb28181平台是指支持gb28181标准的图像采集设备的接入平台,gb28181标准是为了规范安防领域各厂商的摄像头能够互联互通而联合众多厂商推出的通信标准,主要内容包括了负责传输控制信令的会话初始协议(session initiation protocol,sip)和负责流媒体传输的实时传输协议(realtime transport protocol,rtp)/实时传输控制协议(realtime transport control protocol,rtcp)。gb28181平台可以包括多个sip服务器构成的服务器集(也可以是一个sip服务器),以及流媒体服务器集(也可以是一个流媒体服务器)。
30.其中,限流系统包括:sip请求解析模块、数据采集分析模块、sip响应解析模块和限流决策模块。
31.sip请求解析模块用于接收客户端发送的sip请求(如图1中所示的“外部sip请求”),对sip请求进行解析,得到sip请求中的客户端标识、请求方法的类型信息和特征信息、sip事务和sip对话。其中,sip请求中的请求方法可以包括会话类请求和非会话类请求。会话类请求的类型信息可以包括:会话建立请求invite,用于建立音视频会话连接;会话确认请求ack,用于invite请求的确认;会话结束请求bye,用于断开invite请求建立的会话连接;回放控制请求info,用于进行历史视音频的回放控制。非会话类请求的类型信息可以包括:订阅类请求subscribe,用于向事件源订阅事件,向目录所有者订阅目录;通知类请求notify,用于事件源向事件观察者通知事件发生,目录拥有者向目录接受者通知目录变化;消息类请求message,用于实现前端设备控制、报警事件通知和分发、设备信息查询、设备状态信息报送、音视频文件的检索;登记类请求register,用于设备的注册和注销。
32.sip响应解析模块用于接收gb28181平台返回的历史sip请求的sip响应消息,提取响应消息中的状态码、sip事务和sip对话,并向客户端返回sip响应消息。
33.数据采集分析模块用于根据sip请求和gb28181平台返回的响应消息形成sip请求/响应的数据采集闭环,包括:sip事务、sip对话,成功注册/半注册/注销的客户端标识,多响应关联等原始数据,以及据此分析得到的带宽占用、瞬时每秒查询率(queries-per-second,qps)、请求/响应延时等特征信息。将这些数据存入数据库,提供给限流决策模块使用。
34.限流决策模块用于根据sip请求信息、数据库中提取的带宽资源使用量、sip事务、sip对话和用户预先配置的多种阈值信息,综合判定是否对当前sip请求采取限流措施,以
及采取何种限流策略进行相应处理,即拦截sip请求或者放行sip请求至sip服务器。流媒体服务器用于根据sip服务器发送的视音频数据获取请求,将视音频数据发送至客户端。其中,一个sip事务由单个sip请求和这个请求的所有响应消息组成,这些响应消息包含了0到n个中间响应(例如,状态码为1xx等),和一个最终响应(例如,状态码为2xx、3xx、4xx、5xx或者6xx等)。同一个事务的请求和响应消息头中的via头域的branch字段值相同。一个sip对话由sip服务器和客户端之间的一系列用于建立会话、终止会话的事务有关。例如,针对某个设备从开始实时点播视音频到结束实时点播,通常涉及invite、ack、bye等多个请求方法,但是都属于一个对话。同一个对话可以通过请求和响应头的会话标识call-id值、from头域的tag值和to头域的tag值三个值来唯一标识。
35.本实施例中,根据sip请求中的请求方法的类型信息和特征信息确定限流策略,通过限流策略对sip请求进行相应的处理,可以实现保护gb28181平台,避免出现性能下降和拒绝服务(deny-of-service,dos)风险,确保gb28181平台的资源得到充分利用。而且,根据请求方法的类型信息和特征信息,确定细粒度的和差异化的限流策略,可以通过拦截请求的方式,提前实现sip服务器的过载控制。
36.而且,本实施例中,通过在服务器端拦截请求,无需客户端进行调整或者定制化去适配服务器的自定义头,由于是独立的限流系统,现有的服务器也可以无需改造。通过拦截请求的方式来让客户端隐式的感知到服务器过载(例如,客户端感知到请求超时),而非显式的响应每个请求,不会加剧网络的拥塞和服务器资源的消耗。对于“恶意”攻击者的客户端的接入,限流系统由于能够对未知客户端的sip请求进行拦截限制,可以避免大量攻击者进行注册,进而解决了安全性和公平性的问题。
37.本技术实施例提供了一种数据限流方法,本实施例中的方法可以应用计算设备中,计算设备可以包括:服务器等。如图2所示为本技术一实施例的数据限流方法的流程图,该方法,包括:
38.步骤s201,响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息。
39.步骤s202,根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略。
40.步骤s203,根据第一限流策略,对多媒体通信相关请求进行相应的处理。
41.其中,执行主体可以为服务器。多媒体通信相关请求表示利用多媒体通信协议进行通信相关的请求,例如,sip请求等。
42.视音频服务平台中的服务器接收到多媒体通信相关请求之后,对多媒体通信相关请求进行解析,得到多媒体通信相关请求中的请求方法的类型信息和特征信息。多媒体通信相关请求的格式包括请求行、请求头和请求体。服务器解析请求行可以得到请求方法的类型信息,解析请求头和请求体可以得到请求方法的特征信息,特征信息包括请求头和请求体中预设字段的值,不同的请求方法请求头和请求体中预设字段的值可能不同。
43.根据请求方法的类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略,第一限流策略可以包括对多媒体通信相关请求进行拦截,或者放行多媒体通信相关请求至视音频服务平台。如果放行至视音频服务平台,则视音频服务平台的服务器向客户端返回多媒体通信相关请求对应的响应消息。
44.本技术提供了一种数据限流方法,响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息;根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;根据第一限流策略,对多媒体通信相关请求进行相应的处理。本实施例中,根据多媒体通信相关请求中的请求方法的类型信息和特征信息确定限流策略,通过限流策略对多媒体通信相关请求进行相应的处理,以实现保障视音频服务平台的高可用性、稳定性和安全性。而且,根据请求方法的类型信息和特征信息,可以确定细粒度的和差异化的限流策略,以保障视音频服务平台的服务质量。
45.其中,步骤s202的具体实现方式见如下实施例:
46.在一种实现方式中,根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略,包括:预先获取历史多媒体通信相关请求的响应消息;若根据类型信息、特征信息和响应消息,确定多媒体通信相关请求与历史多媒体通信相关请求具有关联关系,则将第一限流策略确定为放行多媒体通信相关请求。
47.在实际应用中,预先获取历史多媒体通信相关请求的响应消息,并建立数据库,存储对历史多媒体通信相关请求的响应消息进行解析得到的状态码和头域数据等,以及对多媒体通信相关请求进行解析,根据解析结果可以得到的请求方法的类型信息和特征信息。将请求方法的类型信息和特征信息与响应消息的状态码和头域数据等进行比对,可以确定当前多媒体通信相关请求与历史多媒体通信相关请求是否具有关联关系,即是否为中间态请求。例如,当前多媒体通信相关请求的请求方法的请求头中解析得到的to字段的tag值,与响应消息的头域数据中的to字段的tag值相同,则该方法为中间态请求。如果多媒体通信相关请求为中间态请求,则将多媒体通信相关请求放行至视音频服务平台。
48.例如,一次sip对话过程(例如,从开始查看摄像头直播流,到结束查看)通常需要涉及到sip客户端(例如,摄像头)和sip服务器多次请求/响应事务,通过将多媒体通信相关请求解析出的数据和数据库中的响应消息解析出的数据进行比对,可以识别和维护各sip请求所属的对话和事务,避免出现拦截处于sip对话和事务的中间态请求,导致已经部分成功的请求最终全部无效,造成机器硬件资源和网络资源的浪费。
49.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略,包括:
50.若请求方法的类型信息为会话确认请求,根据特征信息,确定视频编码类型,特征信息包括请求方法的请求头和请求体中预设字段的值;若请求方法的类型信息为会话建立请求,则根据类型信息,确定视频编码类型;根据视频编码类型,确定会话建立请求或会话确认请求的分配带宽,若分配带宽超过预配置的带宽阈值,则将第一限流策略确定为拦截会话类请求。
51.其中,sip请求中的请求方法可以包括会话类请求和非会话类请求。会话类请求可以包括:会话建立请求invite,会话确认请求ack,会话结束请求bye和回放控制请求info。非会话类请求可以包括:订阅类请求subscribe,通知类请求notify,消息类请求message和登记类请求register。
52.预先根据用户的配置指令配置视音频服务平台的带宽总量、视音频服务平台的限流带宽阈值、非会话类请求中各类型请求各自对应的每秒查询率阈值和请求响应的延时波动上限等。若根据sip请求的请求行中解析出的数据确定请求方法为会话确认请求ack,且
根据ack请求的请求头和请求体中解析出的预设字段的值,确定视频编码类型,根据视频编码类型确定分配带宽,若分配带宽超过预配置的带宽阈值,则拦截sip请求。若为invite请求,则根据类型信息,确定视频编码类型,进而确定分配带宽。其中,分配带宽包括实际分配带宽或预分配带宽中的至少一项;预配置的带宽阈值包括预配置的限流带宽阈值或预配置的带宽总量中的至少一项。
53.在一示例中,如果是ack请求,特征信息为a字段的负载类型payload type内容,根据payload type内容,可以确定实际传输的视频流编码类型,根据视频编码类型,确定分配带宽。将预分配带宽转变为实际分配带宽,如实际视频编码类型是h265,那么预分配带宽减少4mbps,实际分配带宽增加2mbps。如果是invite请求,默认后续视频编码类型为h264,分辨率为1080p,新增系统预分配带宽4mbps。
54.可选的,若会话建立请求的实际分配带宽超过预配置的限流带宽阈值,则将第一限流策略确定为拦截会话建立请求。
55.可选的,若会话确认请求的实际分配带宽与预分配带宽之和超过预配置的带宽总量,则将第一限流策略确定为拦截会话确认请求。
56.在一种实现方式中,该方法还包括:
57.若分配带宽不超过预配置的带宽阈值,且预设时间段内会话建立请求或会话确认请求的平均处理时延超过预设时间阈值,则将第一限流策略确定为拦截该会话类请求。
58.其中,时间阈值可以是预配置的请求响应的延时波动上限。若会话建立请求或会话确认请求的分配带宽不超过预配置的带宽阈值,且预设时间段内会话建立请求或会话确认请求的平均处理时延不超过延时波动上限,则将第一限流策略确定为放行该会话类请求。
59.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,所述方法还包括:
60.非会话类请求包括多个类型的请求方法,若根据类型信息确定多个类型的请求方法分别对应的每秒查询率超过相应的查询率阈值,则将第一限流策略确定为拦截非会话类请求。
61.其中,非会话类请求包括多个类型的请求方法:订阅类请求subscribe,通知类请求notify,消息类请求message和登记类请求register。预先为各类型的请求方法配置各自对应的查询率阈值,若一种请求方法对应的每秒查询率超过相应的查询率阈值,则将第一限流策略确定为拦截该非会话类请求。
62.在一种实现方式中,该方法还包括:
63.若根据类型信息确定多个类型的请求方法分别对应的每秒查询率不超过相应的查询率阈值,且预设时间段内所述多个类型的请求方法分别对应的平均处理时延超过预设时间阈值,则将第一限流策略确定为拦截非会话类请求。
64.其中,对于任一类型的请求方法,如果每秒查询率不超过对应的查询率阈值,预设时间段内的平均处理时延超过预配置的延时波动上限,则拦截该请求方法。
65.可选的,若根据类型信息确定多个类型的请求方法分别对应的每秒查询率不超过相应的查询率阈值,且预设时间段内所述多个类型的请求方法分别对应的平均处理时延不超过预设时间阈值,则将第一限流策略确定为放行该非会话类请求。
66.另外,在确定限流策略时还可以将视音频服务平台当前的过载程度信息作为考虑因素,具体见如下实施例:
67.在一种实现方式中,根据第一限流策略,对多媒体通信相关请求进行相应的处理,包括:若第一限流策略为拦截多媒体通信相关请求,则确定过载程度信息;根据类型信息、特征信息和过载程度信息,确定多媒体通信相关请求对应的第二限流策略;根据第二限流策略,对多媒体通信相关请求进行相应的处理。
68.在实际应用中,如果第一限流策略为拦截多媒体通信相关请求,则进一步根据请求方法的类型信息和视音频服务平台的过载程度信息确定第二限流策略,最终根据第二限流策略来确定拦截还是放行该多媒体通信相关请求。其中,不同类型的请求方法可对应不同的第二限流策略。
69.其中,确定过载程度信息的具体实现方式见如下实施例:
70.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,确定过载程度信息,包括:
71.若会话类请求的分配带宽超过预配置的带宽阈值,则将过载程度信息确定为严重过载。
72.在实际应用中,如果是会话类请求,实际分配带宽超过限流带宽阈值,则过载程度信息确定为严重过载,否者过载程度信息确定为一般过载。
73.在一种实现方式中,方法还包括:
74.若类型信息为会话建立请求、会话确认请求和回放控制请求中的任一项,且过载程度信息为严重过载,则将第二限流策略确定为拦截会话类请求。
75.在一示例中,对于会话类请求,若过载程度信息为一般过载,则ack请求判定为需要限流;若过载程度信息为严重过载,则ack请求、invite请求和info请求都判定为需要限流;对于bye请求,过载程度信息为一般过载或严重过载,都不需要限流。
76.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,确定过载程度信息,包括:
77.若非会话类请求的每秒查询率超过相应的查询率阈值,且非会话类请求的平均处理时延超过预设时间阈值,则将过载程度信息确定为严重过载。
78.在实际应用中,对于非会话类请求,如果每秒查询率超过查询率阈值和平均处理时延超过预配置的延时波动上限,过载程度信息确定为严重过载;如果每秒查询率超过查询率阈值,但是平均处理时延不超过预配置的延时波动上限,过载程度信息确定为一般过载;如果每秒查询率不超过查询率阈值,但是平均处理时延超过预配置的延时波动上限,过载程度信息确定为一般过载。
79.在一种实现方式中,方法还包括:
80.若类型信息为订阅类请求、通知类请求和消息类请求中的任一项,且过载程度信息为严重过载,则将第二限流策略确定为拦截非会话类请求。
81.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,根据类型信息、特征信息和过载程度信息,确定多媒体通信相关请求对应的第二限流策略,包括:
82.若类型信息为登记类请求或消息类请求,则根据登记类请求或消息类请求分别对
应的特征信息和过载程度信息,将第二限流策略确定为拦截或放行非会话类请求。
83.在一示例中,对于非会话类请求,如果是register请求,若过载程度信息为一般过载,则根据特征信息确定请求处于初始注册阶段,判定为需要限流;若过载程度信息为严重过载,则根据特征信息(expires头的值,大于0表示注册流程的请求,等于0表示注销流程的请求。提取授权authorization头,如果存在,表示注册初始阶段,反之为最终阶段)确定请求处于最终注册阶段,判定为需要限流;一般过载或严重过载时,注销请求都不需要限流。如果是subscribe请求,一般过载或严重过载时,都需要限流。如果是notify请求,严重过载需要进行限流。如果是message请求,一般过载时,通过解析请求体,得到特征信息,即命令类型为control和query,则需要限流;严重过载时,命令类型(control、query、notify和response)的请求都需要限流。其中,需要限流是指拦截请求;否则,放行请求。
84.在一个具体的实施例中,对于多媒体通信相关请求和响应消息进行解析,得到请求方法的类型信息和特征信息。具体的,多媒体通信相关请求可以是sip请求,对sip请求进行解析包括:解析sip请求的请求行,提取出sip请求的请求方法,从而得到请求方法的类型信息;解析sip请求头,提取公共sip头域数据:从from头域中提取客户端标识信息;提取会话标识call id头,提取from头域中的标签tag值和to头域中的tag值。对于部分请求方法,提取特定的sip头域数据:对于register请求,确定register类型,具体的,提取注册有效期expires头的值,大于0表示注册,等于0表示注销。判断注册流程阶段:提取授权authorization头,如果存在,表示注册流程初始阶段,反之为最终阶段。对于subscribe请求,确定订阅操作类型,具体的,提取expires头的值,大于0表示建立订阅,等于0表示取消订阅。对于提取出的请求方法,部分请求方法需要解析sip请求体,并从中提取特定的字段,例如,对于ack方法,解析sdp请求中的a字段的负载类型payload type内容,确定实际传输的视频流编码类型;对于message请求,解析监测报警联网系统控制描述协议(monitoring and alarming network system control description protocol,manscdp)结合可扩展标记语言(extensible markup language,xml)格式的请求体,提取根元素名称和命令类型cmdtype元素值,从而确定message命令类型和子类型。对历史sip请求的响应消息进行解析包括:解析响应消息的状态行,提取出响应消息的状态码;解析响应消息头,提取公共头域数据;提取call id头,从from头域中提取tag值和to头域中提取tag值。
85.在一个具体的实施例中,对于sip请求和响应消息进行分析的流程图如图3所示。分析过程包括:
86.步骤s301,判断接收到的客户端发送的请求是否为sip请求,如果是,则执行步骤s302;如果否,则为历史sip的响应消息,则执行步骤s312。
87.步骤s302,数据库新增客户端请求记录。
88.具体的,根据客户端sip id和sip对话信息(会话标识call id值和from头的tag值)在数据库新增请求记录,请求记录中包括sip请求的请求方法的类型信息、请求时间戳以及各请求方法的特征信息,以register为例,包含注册或注销,初始阶段注册或最终阶段注册。
89.步骤s303,数据库存储请求方法的特征信息。
90.步骤s304,判断sip请求是否为会话类请求,如果是,则执行步骤s305,否则执行步骤s311。
91.步骤s305,判断sip请求是否为会话类请求中的invite请求,如果是,则执行步骤s306,否则执行步骤s307。
92.步骤s306,默认后续视频编码为h264,分辨率为1080p,新增视音频服务平台预分配带宽4mbps。
93.步骤s307,判断sip请求是否为会话类请求中的ack请求,如果是,则执行步骤s308,否则执行步骤s309。
94.步骤s308,如果是会话类型请求中的ack请求,根据对sip请求解析得到的实际视频流编码类型,将预分配带宽转变为实际分配带宽,如实际视频流编码类型是h265,则预分配带宽减少4mbps,实际分配带宽增加xmbps。
95.步骤s309,判断sip请求是否为会话类请求中的bye请求,如果是,则执行步骤s310,否则结束。
96.步骤s310,实际分配带宽减少x mbps,x的值取决于sip对话中之前发送的ack请求的视频流编码类型。
97.步骤s311,如果为非会话类请求,则计算非会话类请求对应的qps。
98.步骤s312,如果当前处理的是sip请求的响应消息,则更新对应sip请求的处理结果(响应状态码)和sip对话信息(to头域的tag值)。
99.步骤s313,计算并存储当前请求的视音频服务平台的实际处理延时。
100.步骤s314,更新同类型请求的处理时延统计信息,包括:时延的平均数、中位数等。
101.在一个具体的实施例中,数据限流方法的流程图如图4所示。该方法包括:
102.步骤s401,判断接收到的多媒体通信相关请求是否为非法请求,对于来自于未知sip客户端或者对话的非注册请求,会被确定为非法请求。如果是非法请求,则执行步骤s406,否则执行步骤s402。
103.步骤s402,如果不是非法请求,则进行限流可能性判定。
104.步骤s403,判断是否可能需要限流,如果是,则执行步骤s404;否则执行步骤s407。
105.步骤s404,进行系统过载程度判断。过载程度信息包括严重过载或一般过载。
106.步骤s405,判断请求在当前过载程度下是否需要限流,如果是,则执行步骤s406,否则执行步骤s407。
107.步骤s406,拦截请求。
108.步骤s407,放行请求。
109.与本技术实施例提供的方法的应用场景以及方法相对应地,本技术实施例还提供一种数据限流装置。如图5所示为本技术一实施例的数据限流装置的结构框图,该装置包括:
110.获取模块501,用于响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息;
111.确定模块502,用于根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;
112.限流模块503,用于根据第一限流策略,对多媒体通信相关请求进行相应的处理。
113.本技术提供了一种数据限流装置,响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息;根据类型信息和特
征信息,确定多媒体通信相关请求对应的第一限流策略;根据第一限流策略,对多媒体通信相关请求进行相应的处理。本实施例中,根据多媒体通信相关请求中的请求方法的类型信息和特征信息确定限流策略,通过限流策略对多媒体通信相关请求进行相应的处理,以实现保障视音频服务平台的高可用性、稳定性和安全性。而且,根据请求方法的类型信息和特征信息,可以确定细粒度的和差异化的限流策略,以保障视音频服务平台的服务质量。
114.在一种实现方式中,确定模块502,用于:
115.预先获取历史多媒体通信相关请求的响应消息;
116.若根据类型信息、特征信息和响应消息,确定多媒体通信相关请求与历史多媒体通信相关请求具有关联关系,则将第一限流策略确定为放行多媒体通信相关请求。
117.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,确定模块502,用于:
118.若请求方法的类型信息为会话确认请求,根据特征信息,确定视频编码类型,特征信息包括请求方法的请求头和请求体中预设字段的值;
119.若请求方法的类型信息为会话建立请求,则根据类型信息,确定视频编码类型;
120.根据视频编码类型,确定会话建立请求或会话确认请求的分配带宽,若分配带宽超过预配置的带宽阈值,则将第一限流策略确定为拦截会话类请求。
121.在一种实现方式中,装置还用于:
122.若根据特征信息确定会话建立请求或会话确认请求的分配带宽不超过预配置的带宽阈值,且预设时间段内会话建立请求或会话确认请求的平均处理时延超过预设时间阈值,则将第一限流策略确定为拦截会话类请求。
123.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,装置还用于:
124.非会话类请求包括多个类型的请求方法,若根据类型信息确定多个类型的请求方法分别对应的每秒查询率超过相应的查询率阈值,则将第一限流策略确定为拦截非会话类请求。
125.在一种实现方式中,装置还用于:
126.若根据类型信息确定多个类型的请求方法分别对应的每秒查询率不超过相应的查询率阈值,且预设时间段内所述多个类型的请求方法分别对应的平均处理时延超过预设时间阈值,则将第一限流策略确定为拦截非会话类请求。
127.在一种实现方式中,限流模块503,用于:
128.若第一限流策略为拦截多媒体通信相关请求,则确定过载程度信息;
129.根据类型信息、特征信息和过载程度信息,确定多媒体通信相关请求对应的第二限流策略;
130.根据第二限流策略,对多媒体通信相关请求进行相应的处理。
131.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,装置在确定过载程度信息时,用于:
132.若会话类请求的分配带宽超过预配置的带宽阈值,则将过载程度信息确定为严重过载。
133.在一种实现方式中,装置还用于:
134.若类型信息为会话建立请求、会话确认请求和回放控制请求中的任一项,且过载程度信息为严重过载,则将第二限流策略确定为拦截会话类请求。
135.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,装置在确定过载程度信息时,用于:
136.若非会话类请求的每秒查询率超过相应的查询率阈值,且非会话类请求的平均处理时延超过预设时间阈值,则将过载程度信息确定为严重过载。
137.在一种实现方式中,装置还用于:
138.若类型信息为订阅类请求、通知类请求和消息类请求中的任一项,且过载程度信息为严重过载,则将第二限流策略确定为拦截非会话类请求。
139.在一种实现方式中,多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,装置在根据类型信息、特征信息和过载程度信息,确定多媒体通信相关请求对应的第二限流策略时,用于:
140.若类型信息为登记类请求或消息类请求,则根据登记类请求或消息类请求分别对应的特征信息和过载程度信息,将第二限流策略确定为拦截或放行非会话类请求。
141.本技术实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
142.图6为用来实现本技术实施例的电子设备的框图。如图6所示,该电子设备包括:存储器610和处理器620,存储器610内存储有可在处理器620上运行的计算机程序。处理器620执行该计算机程序时实现上述实施例中的方法。存储器610和处理器620的数量可以为一个或多个。
143.该电子设备还包括:
144.通信接口630,用于与外界设备进行通信,进行数据交互传输。
145.如果存储器610、处理器620和通信接口630独立实现,则存储器610、处理器620和通信接口630可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
146.可选的,在具体实现上,如果存储器610、处理器620及通信接口630集成在一块芯片上,则存储器610、处理器620及通信接口630可以通过内部接口完成相互间的通信。
147.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本技术实施例中提供的方法。
148.本技术实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本技术实施例提供的方法。
149.本技术实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
150.应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电
路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
151.进一步地,可选的,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以包括随机访问存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram均可用。例如,静态随机访问存储器(static ram,sram)、动态随机访问存储器(dynamic random access memory,dram)、同步动态随机访问存储器(synchronous dram,sdram)、双倍数据速率同步动态随机访问存储器(double data rate sdram,ddr sdram)、增强型同步动态随机访问存储器(enhanced sdram,esdram)、同步链接动态随机访问存储器(sync link dram,sldram)和直接内存总线随机访问存储器(direct rambus ram,dr ram)。
152.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本技术的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
153.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
154.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
155.流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
156.在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令
执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
157.应理解的是,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
158.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
159.以上所述,仅为本技术的示例性实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种数据限流方法,其特征在于,所述方法包括:响应于针对视音频服务平台的多媒体通信相关请求,获取所述多媒体通信相关请求中的请求方法的类型信息和特征信息;根据所述类型信息和所述特征信息,确定所述多媒体通信相关请求对应的第一限流策略;根据所述第一限流策略,对所述多媒体通信相关请求进行相应的处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述类型信息和所述特征信息,确定所述多媒体通信相关请求对应的第一限流策略,包括:预先获取历史多媒体通信相关请求的响应消息;若根据所述类型信息、所述特征信息和所述响应消息,确定所述多媒体通信相关请求与所述历史多媒体通信相关请求具有关联关系,则将所述第一限流策略确定为放行所述多媒体通信相关请求。3.根据权利要求1所述的方法,其特征在于,所述多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,所述根据所述类型信息和所述特征信息,确定所述多媒体通信相关请求对应的第一限流策略,包括:若所述请求方法的类型信息为会话确认请求,根据所述特征信息,确定视频编码类型,所述特征信息包括所述请求方法的请求头和请求体中预设字段的值;若所述请求方法的类型信息为会话建立请求,则根据所述类型信息,确定所述视频编码类型;根据所述视频编码类型,确定所述会话建立请求或所述会话确认请求的分配带宽,若所述分配带宽超过预配置的带宽阈值,则将所述第一限流策略确定为拦截所述会话类请求。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述分配带宽不超过预配置的带宽阈值,且预设时间段内所述会话建立请求或所述会话确认请求的平均处理时延超过预设时间阈值,则将所述第一限流策略确定为拦截所述会话类请求。5.根据权利要求1所述的方法,其特征在于,所述多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,所述方法还包括:所述非会话类请求包括多个类型的请求方法,若根据所述类型信息确定所述多个类型的请求方法分别对应的每秒查询率超过相应的查询率阈值,则将所述第一限流策略确定为拦截所述非会话类请求。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若根据所述类型信息确定所述多个类型的请求方法分别对应的每秒查询率不超过相应的查询率阈值,且预设时间段内所述多个类型的请求方法分别对应的平均处理时延超过预设时间阈值,则将所述第一限流策略确定为拦截所述非会话类请求。7.根据权利要求1所述的方法,其特征在于,所述根据所述第一限流策略,对所述多媒体通信相关请求进行相应的处理,包括:若所述第一限流策略为拦截所述多媒体通信相关请求,则确定过载程度信息;根据所述类型信息、所述特征信息和所述过载程度信息,确定所述多媒体通信相关请
求对应的第二限流策略;根据所述第二限流策略,对所述多媒体通信相关请求进行相应的处理。8.根据权利要求7所述的方法,其特征在于,所述多媒体通信相关请求包括会话初始协议sip请求中的会话类请求,所述确定过载程度信息,包括:若所述会话类请求的分配带宽超过预配置的带宽阈值,则将所述过载程度信息确定为严重过载。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:若所述类型信息为会话建立请求、所述会话确认请求和回放控制请求中的任一项,且所述过载程度信息为严重过载,则将所述第二限流策略确定为拦截所述会话类请求。10.根据权利要求7所述的方法,其特征在于,所述多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,所述确定过载程度信息,包括:若所述非会话类请求的每秒查询率超过相应的查询率阈值,且所述非会话类请求的平均处理时延超过预设时间阈值,则将所述过载程度信息确定为严重过载。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:若所述类型信息为订阅类请求、通知类请求和消息类请求中的任一项,且所述过载程度信息为严重过载,则将所述第二限流策略确定为拦截所述非会话类请求。12.根据权利要求7所述的方法,其特征在于,所述多媒体通信相关请求包括会话初始协议sip请求中的非会话类请求,所述根据所述类型信息、所述特征信息和所述过载程度信息,确定所述多媒体通信相关请求对应的第二限流策略,包括:若所述类型信息为登记类请求或消息类请求,则根据登记类请求或消息类请求分别对应的特征信息和过载程度信息,将所述第二限流策略确定为拦截或放行所述非会话类请求。13.一种数据限流装置,其特征在于,所述装置包括:获取模块,用于响应于针对视音频服务平台的多媒体通信相关请求,获取所述多媒体通信相关请求中的请求方法的类型信息和特征信息;确定模块,用于根据所述类型信息和所述特征信息,确定所述多媒体通信相关请求对应的第一限流策略;限流模块,用于根据所述第一限流策略,对所述多媒体通信相关请求进行相应的处理。14.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-12中任一项所述的方法。
技术总结
本申请提供了一种数据限流方法、装置、电子设备及存储介质,涉及云计算技术领域,该方法包括:响应于针对视音频服务平台的多媒体通信相关请求,获取多媒体通信相关请求中的请求方法的类型信息和特征信息;根据类型信息和特征信息,确定多媒体通信相关请求对应的第一限流策略;根据第一限流策略,对多媒体通信相关请求进行相应的处理。本实施例中,根据多媒体通信相关请求中的请求方法的类型信息和特征信息确定限流策略,通过限流策略对多媒体通信相关请求进行相应的处理,以实现保障视音频服务平台的高可用性、稳定性和安全性。而且,根据请求方法的类型信息和特征信息,可以确定细粒度的和差异化的限流策略,以保障视音频服务平台的服务质量。台的服务质量。台的服务质量。
技术研发人员:
毛华超
受保护的技术使用者:
阿里云计算有限公司
技术研发日:
2022.12.12
技术公布日:
2023/3/3