异常现场回顾
7月7日对小驴班级推送视频任务功能进行压测。 压测过程中发现有一部分接口请求失败。 小驴端上报推送失败异常如下:
这个异常日志是小驴端收到的。 异常内容是网校网关返回的异常页面, 如何看出来是网校网关的呢? 看回到首页前面有一个url,这个跳转到的url正是网校的主页
班级任务推送主要是to B的,老师们使用, 并发量并不大,10并发,25次, 一共250个任务。 并发量并不大,到底为什么异常,怎么出的异常呢?
首先,我们来看ELK日志监控。
先来查询网关日志,搜索对内网关,查询条件是:对内网关+请求路径,查看并发情况。
我们看到一共并发请求了207次, 目测都是成功的。 但预计是250次,实际只有207次呢?再来查询异常情况。 如何查询呢? 查询条件:
- project.key is cloudlearn-gateway-inner
- response is not 200
发现问题了,这里有21条请求500的日志。
第二步:进入网关查询异常原因。
根据在elk中失败请求的traceId查询网关日志,燃鹅并没有什么收获。 于是带着这个traceId去业务服务器查找
第三步: 查找业务服务器日志。
业务服务器抛出异常, 获取锁失败。
异常原因分析及解决
回想昨天小驴端异常数据,我们看到有好几个小驴id都抛了异常。这里加了一个redisson锁,这个锁的key是:paperId+lvTaskId+originType. 案例来说,压测的lvTaskId应该都不