基于有限时序数据队列实现API实时预警的系统及方法技术方案

技术编号:24014838 阅读:53 留言:0更新日期:2020-05-02 03:01
本发明专利技术涉及微服务应用程序领域,具体涉及基于有限时序数据队列实现API实时预警的系统及方法。系统包括有限时序队列管理模块、预警规则匹配器、响应超时预警模块、错误码预警模块和请求速率预警模块,方法步骤包括:S1、创建各类API的预警规则;S2、在预警规则下添加需要预警和排除预警的API URL地址;S3、发布预警规则到计算引擎中;S4、构建有限的具有时间顺序的消息队列集合,存储所有API的请求数据,实时记录API请求数据;S5、把需要预警的API请求数据实时与预警规则进行匹配运算;S6、若运算结果触发预警规则中定义的事件则进行相应预警。本发明专利技术可以通过实时的API预警给企业大规模部署的API服务提供及时有效的监控和预警手段,保护API的健康运行。

The system and method of API real-time early warning based on finite time series data queue

【技术实现步骤摘要】
基于有限时序数据队列实现API实时预警的系统及方法
本专利技术涉及微服务应用程序领域,具体涉及基于有限时序数据队列实现API实时预警的系统及方法。
技术介绍
微服务架构是一项在云中部署应用和服务的新技术。微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。API(ApplicationProgrammingInterface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。微服务架构下所有API的请求都必须经过API网关进行路由和数据转发,而企业后端业务系统经常存在响应超时、网络闪断、业务执行异常、API主动下线等不可预知的情况,而作为API的调用方则存在同一IP的大量请求、同一时间大流量请求造成API网关出现服务中断或不可用等风险,因为API网关或企业的运维人员必须要能实时感知这种即将发生的风险并提前做好应对措施,此时就需要API网关能实时准确的把这些风险信息第一时间发送给管理人员。目前的API网关主要是作为HTTP流量转发使用,在实时预警方面缺少相应的技术手段和方法,目前主要是通过抓取HTTPAPI的请求生成日志数据,再把日志数据传输到数据库中,然后再对API的请求日志数据进行事后分析得到相应的指标,然后再呈现为图形报表或者发送预警消息,这种模式下存在API预警不及时、统计分析速度慢、等收到预警消息时API网关系统故障已经发生,只能事后采取补救措施,很容易给企业的关键业务系统因为不可用而带来额外的损失。
技术实现思路
针对现有技术存在的不足,本专利技术提供了基于有限时序数据队列实现API实时预警的系统及方法,其应用时,可以通过实时的API预警给企业大规模部署的API服务提供及时有效的监控和预警手段,能够实时保护API的运行健康状况,提升企业的API服务的运行质量。本专利技术所采用的技术方案为:基于有限时序数据队列实现API实时预警的系统,包括有限时序队列管理模块、预警规则匹配器、响应超时预警模块、错误码预警模块和请求速率预警模块;所述有限时序队列管理模块用于在内存中构建一个有限的具有时间顺序的消息队列集合,并通过消息队列集合来实时存储所有API的请求数据并定时清除过期的API请求数据;所述预警规则匹配器用于将接收的API相关请求数据与预设的预警规则数据进行匹配计算;所述响应超时预警模块用于实时收集消息队列集合中API的响应时间,并将API的响应时间发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超时预警消息给管理人员;所述错误码预警模块用于实时收集消息队列集合中API的返回错误码,并将API的返回错误码发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员;所述请求速率预警模块用于实时收集消息队列集合中API的每秒请求次数,并将API的每秒请求次数发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员。作为上述技术方案的优选,所述有限时序队列管理模块创建一个有限的LinkedList集合对像,并限定集合对像的最大可存数据量;所述预警规则匹配器读取所有预警规则到内存中,并根据当前请求的HTTPURL进行循环运算,看是否匹配到某个预警规则;所述响应超时预警模块的处理信息包括规则名称、超时时间、预警间隔时间、生效服务器、预警触发次数、当前状态、累计超时次数、触发超时预警的次数、预警内容和事件API;所述错误码预警模块的处理信息包括错误码规则名称、HTTP错误码、预警间隔时间、生效服务器、预警触发次数、当前状态、累计请求次数、触发预警的HTTP错误次数、预警内容和事件API;所述请求速率预警模块的处理信息包括规则名称、限速类型、预警间隔时间、生效服务器、预警触发次数、当前状态、速率维度、总请求次数、累计超速次数、预警内容和事件API。基于有限时序数据队列实现API实时预警的方法,包括以下步骤:S1、创建各类API的预警规则;S2、在创建的预警规则下添加需要预警和需要排除预警的APIURL地址;S3、发布预警规则到计算引擎中;S4、构建有限的具有时间顺序的消息队列集合,并通过消息队列集合实时存储所有API的请求数据,在队列中实时记录API请求数据;S5、把消息队列集合中需要预警的API对应请求数据实时与预警规则进行匹配运算;S6、若运算结果触发预警规则中定义的事件则进行相应预警。作为上述技术方案的优选,所述步骤S1的具体步骤包括:S11、创建相应的预警规则;S12、在创建的预警规则中指定规则名称以及包含响应超时、错误码和请求速率的预警类型;S13、设定要累计预警的总请求次数以及每次预警的间隔时间;S14、根据用户选择的预警规则类型分别设定响应超时次数、错误码次数、每秒最大请求次数;S15、保存创建的预警规则并设为发布状态。作为上述技术方案的优选,所述步骤S2的具体步骤包括:S21、在创建的预警规则下添加需要进行预警的APIURL地址列表,需要进行预警的APIURL地址采取匹配模式,即只要符合此URL开头的请求均认为匹配本规则;S22、在创建的预警规则下添加需要排除预警的APIURL地址列表,只要请求的APIURL地址在列表中则不参与此预警规则的匹配计算。作为上述技术方案的优选,所述步骤S3的具体步骤包括:S31、选择一个或多个需要发布的预警规则;S32、根据用户操作进行预警规则的发布或者停止发布。作为上述技术方案的优选,所述步骤S4的具体步骤包括:S41、把请求的API数据加入到一个有限时序队列LinkedList中;S42、判断是否超过有限时序队列的最大记录数值,如果超过则删除最末尾加入的记录。作为上述技术方案的优选,所述步骤S5的具体步骤包括:S51、获取所有的预警规则列表;S52、读取每个预警规则中包含的APIURL地址进行字符串匹配运算;S53、把匹配成功的预警规则放入到有限时序队列LinkedList中,并按预警规则取出有限时序队列LinkedList中的最新数据与规则中预设定的数值进行比较,获得比较结果。作为上述技术方案的优选,所述步骤S6的具体步骤包括:在步骤S53中,获得比较结果后,若预警条件成立,则读取预警规则中的事件API并发送预警消息,若预警条件不成立,则匹配不成功,取消事件的触本文档来自技高网
...

【技术保护点】
1.基于有限时序数据队列实现API实时预警的系统,其特征在于:包括有限时序队列管理模块、预警规则匹配器、响应超时预警模块、错误码预警模块和请求速率预警模块;所述有限时序队列管理模块用于在内存中构建一个有限的具有时间顺序的消息队列集合,并通过消息队列集合来实时存储所有API的请求数据并定时清除过期的API请求数据;所述预警规则匹配器用于将接收的API相关请求数据与预设的预警规则数据进行匹配计算;所述响应超时预警模块用于实时收集消息队列集合中API的响应时间,并将API的响应时间发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超时预警消息给管理人员;所述错误码预警模块用于实时收集消息队列集合中API的返回错误码,并将API的返回错误码发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员;所述请求速率预警模块用于实时收集消息队列集合中API的每秒请求次数,并将API的每秒请求次数发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员。/n

【技术特征摘要】
1.基于有限时序数据队列实现API实时预警的系统,其特征在于:包括有限时序队列管理模块、预警规则匹配器、响应超时预警模块、错误码预警模块和请求速率预警模块;所述有限时序队列管理模块用于在内存中构建一个有限的具有时间顺序的消息队列集合,并通过消息队列集合来实时存储所有API的请求数据并定时清除过期的API请求数据;所述预警规则匹配器用于将接收的API相关请求数据与预设的预警规则数据进行匹配计算;所述响应超时预警模块用于实时收集消息队列集合中API的响应时间,并将API的响应时间发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超时预警消息给管理人员;所述错误码预警模块用于实时收集消息队列集合中API的返回错误码,并将API的返回错误码发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员;所述请求速率预警模块用于实时收集消息队列集合中API的每秒请求次数,并将API的每秒请求次数发送至预警规则匹配器与预警规则进行匹配,当反馈的匹配结果达到触发条件时立即发送超速预警消息给管理人员。


2.根据权利要求1所述的基于有限时序数据队列实现API实时预警的系统,其特征在于:所述有限时序队列管理模块创建一个有限的LinkedList集合对像,并限定集合对像的最大可存数据量;所述预警规则匹配器读取所有预警规则到内存中,并根据当前请求的HTTPURL进行循环运算,看是否匹配到某个预警规则;所述响应超时预警模块的处理信息包括规则名称、超时时间、预警间隔时间、生效服务器、预警触发次数、当前状态、累计超时次数、触发超时预警的次数、预警内容和事件API;所述错误码预警模块的处理信息包括错误码规则名称、HTTP错误码、预警间隔时间、生效服务器、预警触发次数、当前状态、累计请求次数、触发预警的HTTP错误次数、预警内容和事件API;所述请求速率预警模块的处理信息包括规则名称、限速类型、预警间隔时间、生效服务器、预警触发次数、当前状态、速率维度、总请求次数、累计超速次数、预警内容和事件API。


3.根据权利要求1或2所述的基于有限时序数据队列实现API实时预警的系统,提供基于有限时序数据队列实现API实时预警的方法,其特征在于,包括以下步骤:
S1、创建各类API的预警规则;
S2、在创建的预警规则下添加需要预警和需要排除预警的APIURL地址;
S3、发布预警规则到计算引擎中;
S4、构建有限的具有时间顺序的消息队列集合,并通过消息队列集合实时存储所有API的请求数据,在队列中实时记录API请求数据;
S5、把消息队列集合中...

【专利技术属性】
技术研发人员:陆才慧
申请(专利权)人:谷云科技广州有限责任公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1