一种微服务中API调用统计和监控的方法与流程

文档序号:13696875阅读:3678来源:国知局
技术领域本发明涉及计算机领域,具体涉及一种微服务中API调用统计和监控的方法。

背景技术:
现有的框架分布式SOA对性能要求很高,监控部分要求记录数据业务量,每天记录高达上亿次调用记录,传统的集中式统计会经常导致服务器崩溃。传统的微服务的API统计监控有以下2大问题:1、服务器分布广泛,很难实现集中式管理2、调用频率量(调用形成的数据量)庞大,传统的方式计算和存储是直接累加并存储在一张总表上,难以实现实时监控。

技术实现要素:
本发明的目的是提供一种微服务中API调用统计和监控的方法,实现可调节时间,实时记录调用信息并以日志统计,从而实现监控所有数据模块,帮助预警、优化、增加硬件或减少服务器数量,按照服务器、类名称、方法名称、调用次数、执行时间、平均执行时间、时段与日期任意组合实现各种统计,并且在此基础上扫描调用次数最多和平均执行时间最长的那些类名称以及方法名称,如果超出阀值,便以邮件的方式通知相关人员,以便做进一步处理。本发明的目的是通过以下技术方案来实现:一种微服务中API调用统计和监控的方法,包括以下步骤:每台微服务服务器各自记录每一次的被调用的调用记录,并把所述调用记录记录到临时内存容器中。所述微服务服务器按固定时间周期启动服务器定时器,当所述服务器定时器执行时,计算当前所述内存容器中的所有的调用记录,其计算方式为:对调用次数和调用时间进行累加,得到累加记录。所述微服务服务器将所述累加记录写入到总数据库中,写入到总数据库的所述累加记录会增加一个微服务服务器地址,得到数据源记录。所述总数据库存储所述数据源记录。进一步的,所述总数据库存储所述数据源记录包括以下步骤:所述总数据库按所述固定时间周期读取所述数据源记录,并把所述数据源记录的记录内容考入临时数据源表中,清空所述数据源记录。并将所述临时数据源表的数据导入到数据源总表中,清空所述临时数据源表。进一步的,所述总数据库每隔一个小时会把该小时内的数据源总表导入到时数据源表中。进一步的,所述总数据库按1天为周期生成日期表,把前一天周期内所有的时数据源表的各个数据累加后,导入到日数据源表中。进一步的,所述调用记录包括包括类名称、方法名称与执行时间。进一步的,所述计算方式为:当所述类名称与方法名称都相同的情况下才能进行对所述调用次数和调用时间的累加。进一步的,所述微服务服务器将所述累加记录写入到总数据库中后,所述微服务服务器清空所述临时内存容器内存储的调用记录。进一步的,所述数据源记录包括服务器地址、类名称、方法名称、调用次数与总共调用时间。进一步的,所述固定时间周期的默认值为1分钟。本发明的有益效果为:本发明实现数据分类后导入至多个不同的微服务中,并且都独享自己的专属总数据库,如果客户端需要用户数据,那么只需调用会员的的微服务接口,来获取会员数据,调用产品的微服务接口,来获取产品的数据,而这两个微服务各自独立,不会相互影响,完全做到了企业级框架的松耦合。本发明实现可调节时间,实时记录调用信息并以日志统计,从而实现监控所有数据模块,帮助预警、优化、增加硬件或减少服务器数量,按照服务器、类名称、方法名称、调用次数、执行时间、平均执行时间、时段与日期任意组合实现各种统计,并且在此基础上扫描调用次数最多和平均执行时间最长的那些类名称以及方法名称,如果超出阀值,便以邮件的方式通知相关人员,以便做进一步处理。附图说明下面根据附图对本发明作进一步详细说明。图1是本发明实施例所述一种微服务中API调用统计和监控的方法的方法流程图。具体实施方式如图1所示,本发明实施例所述的一种微服务中API调用统计和监控的方法,包括以下步骤:每台微服务服务器各自记录每一次的被调用的调用记录,并把所述调用记录记录到临时内存容器中。所述微服务服务器按固定时间周期(默认时间为1分钟)启动服务器定时器,当所述服务器定时器执行时,计算当前时间内所述内存容器中的所有的调用记录,所述调用记录包括类名称、方法名称与执行时间,其计算方式为:当所述类名称与方法名称都相同的情况下才能进行对所述调用次数和调用时间的累加,得到累加记录,例如:一条为类名称是C,方法名是F的调用记录,其执行时间为2毫秒,另一条为类名称是C,方法名是F的调用记录,其执行时间为3毫秒,在该时段内执行,其调用记录会合并成类名称是C,方法名称是F的调用记录,其调用次数为2次且调用时间为5毫秒。所述调用记录与累加记录均已表格的形式呈现。所述微服务服务器将所述累加记录写入到总数据库中,写入到总数据库的所述累加记录会增加一个微服务服务器地址,得到数据源记录,所述数据源记录包括服务器地址、类名称、方法名称、调用次数与总共调用时间,所述微服务服务器清空所述临时内存容器内存储的调用记录,以便再次执行下一次循环。所述总数据库按所述固定时间周期(默认值为1分钟)读取所述数据源记录,并把所述数据源记录的记录内容考入临时数据源表中,清空所述数据源记录,以便再次执行下一次循环。所述总数据库将所述临时数据源表的数据导入到数据源总表中,清空所述临时数据源表,以便再次执行下一次循环。所述总数据库每隔一个小时会把该小时内的数据源总表中的各个数据累加后导入到时数据源表中。所述总数据库按1天为周期生成日期表,把前一天周期内所有的时数据源表的各个数据累加后,导入到日数据源表中。本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1