一、写在前面
最近在进行线上监控检查时,我遇到了两个超出预期的案例。首先,网关层的监控数据与应用实际监控数据存在不一致性,尤其是max有较大的差异,详见如下图。其次在某个应用中,通过httpclient请求某域名时发现只有一台机器持续出现"Read timed out"的异常错误。

鉴于这种情况,我分析了客户端请求到应用集群之间的完整链路。用户发起域名请求时,客户端通过本地DNS(没有解析记录粥查询,如权威DNS)发起查询请求获取域名关联的VIP,接着发起到负载均衡LB的请求,LB接收到请求后,根据配置的LB策略(如轮询、最小连接、IP源hash等)决定将请求转发给后端的服务实例。后端服务器接收到请求后,应用服务器处理请求并生成响应数据,然后再逆向传递。

二、负载均衡
首先聊聊什么是负载均衡。负载均衡(LB,Load Balance)是一种技术解决方案,用来在多个资源(一般是服务器)中分配负载达到最优资源使用,避免过载。最常见的LB是四层TCP负载和7层HTTP负载。四层负载均衡是基于IP+Port实现,通过网络层的IP地址(VIP),然后加上运输层的端口号来决定哪些流量需要做负载均衡,主要工作是转发,在接收到客户端的流量以后通过修改数据包的地址信息将流量转发到应用服务吕。七层负载均衡器除了支持四层负载均衡以外,还要分析应用层的信息,如

最低0.47元/天 解锁文章
2494

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



