1.问题
今天查找线上生产数据问题,发现偶现后端请求服务超时问题,该信息由网关返回。拉取接口后,通过postman调用接口,高频率点击,十几二十次,则会出现一次后端服务超时问题。后查看日志,返现错误日志一直显示如下错误:
然后就以为是参数丢失问题。开始排查,从网关,到生产服务器,都没找到可疑点!
2.解决
后来考虑可能是网关或nginx路由时请求限流导致。于是将接口域名换成服务器ip端口直接请求,也多次高频请求,但不会出现服务请求超时的问题。所以断定是因为请求路由的问题。
然后查看网关配置,最后在查看Eureka的注册服务列表时,发现多了一个非线上服务器IP端口的注册实例,如下:
然后采用Eureka剔除服务的接口调用方式,想要主动剔除此服务:
①先强制线下该实例:
http://${eureka的ip端口}/eureka/apps/${服务名称}/192.168.233.1/status?value=OUT_OF_SERVICE
②剔除实例:
http://${eureka的ip端口}/eureka/apps/${服务名称}/192.168.233.1:10030通过postman的DELETE方式,请求该接口,即可删除。
※注意:一定要按上述顺序删除服务,如果直接用第二个方式,因为Eureka的心跳机制,会删除后此服务会再次注册上线。