健康检查

序言

    没有见过极致的黑暗,就不知道什么是真正的光明。


    技术的作用是什么呢?技术就是让你吹醉到一个忘我的领域,然后能提起很大的兴趣。

健康检查

    健康检查分为几种,像容器的健康检查就可以在容器里面执行一个命令,然后看返回码,如果不是200,那么就可以认为不健康;一种是tcp检查,可以使用telnet 端口来查看是否正常;最后一种则是http检查,可以发送一个head请求来进行检查。


    当进行容器检查的时候,如果出现大面积的健康检查有问题,那么百分之九十的可能是docekr命令出问题了,可能是hang住了,可能是docker命令在进行大量的io操作。


    当无论是进行tcp检查还是http检查的时候,最后一个报文肯定是负载均很器发送的reset报文。


    http检查的报文抓包如下:

健康检查_第1张图片

    在图中可以看到一次健康检查经历了哪些阶段,开始是经过三次握手,不想握手怎么办。。。然后是发送head请求,收到回复。。。最后就是后段服务器响应结束,发送FIN断开报文,负载均衡收到发送ACK,最后发送一个reset报文关闭连接。


    tcp检查的报文抓包如下:

640?wx_fmt=png

    可以看到这种tcp检查就简单多了,三次握手结束,直接负载均衡器发送一个reset报文关闭连接。


    当服务端主动关闭连接的时候,客户端收到的结果就是connection reset by peer,抓包总是能看到好玩的东西。


    健康检查总有各种好处,当发现后端挂了的时候,能及时从LB中去掉,当后端上线之后,能及时加进来进行提供服务。


    健康检查的坏处就是产生大量的日志,因为对于健康检查来说,可能是2s检查一次,从而对于后端来说,日志的数量太多了,从而导致无法查看到正常的日志。


    负载均衡经常导致的问题就是:负载不均衡,原因有各种各样的,例如开启了会话保持功能,例如开启了长连接,然后导致了连接积压。


    在开启了会话保持功能之后,如果时间设置的不够长,那么经常会出现访问一个页面的时候,会发现加载不完整。

640?wx_fmt=jpeg

    无风的夜晚很闷热。

    


你可能感兴趣的:(健康检查)