项目部署到阿里云,突然报错,频繁的打印堆栈信息,一开始是把堆内存打满导致服务一直重启,调大堆内存后就不影响正常服务了,但还是一直打堆栈,虽说日志会自动清理,但一直打这个信息着实不好看。

最终在阿里的elb健康检查的F&Q中找到问题原因。
解决
1.健康检查换http,随便提供最简单的http接口,配上去
2.将对应的日志打印级别改成INFO,亲测那个错误是DEBUG才打,该成INFO就好了
扩展
负载均衡通过健康检查来探测后端ECS的可用性。开启健康检查功能后,当后端某个ECS健康检查出现异常时,来自客户端的新请求将不会再被转发到该ECS,直到健康检查检测到该ECS上业务恢复正常。
TCP监听支持HTTP和TCP两种健康检查方式。
TCP模式的健康检查是基于网络层探测,利用传统的三次握手机制来判断后端服务是否异常。
HTTP模式的健康检查是检测head请求,Tengine节点服务器通过发送HTTP的header请求,然后对比返回码参数来校验后端服务是否异常。
TCP的健康检查方式对服务器的性能资源消耗相对要少一些,如果您对后端服务器的负载高度敏感,则选择TCP方式进行健康检查,如果负载不是很高,则选择HTTP方式进行健康检查。
项目部署至阿里云后,因ELB健康检查引发频繁堆栈信息打印问题,影响服务稳定性和日志美观。本文揭示问题根源在于健康检查配置,并提供两种解决方案:一是更改健康检查为HTTP模式并提供简单接口;二是调整对应日志级别至INFO,避免DEBUG级信息输出。

3914

被折叠的 条评论
为什么被折叠?



