互联网早期,业务流量比较小,业务逻辑比较简单,单台服务器就可以满足基本需求; 但是随着互联网的发展,业务流量越来越大,业务逻辑越来越复杂,单台服务器的性能也越来越复杂。 . 突出显示需要跨多台机器横向扩展性能的问题和单点故障,并避免单点故障。 但是如何将不同用户的流量分配到不同的服务器上呢?

较早的方法是使用 DNS 作为有效负载,通过为客户端解析不同的 IP 地址,允许客户端流量直接到达每个服务器。 然而,这种方法的一个很大的缺点是延迟问题。 调度策略改变后,各级DNS节点的缓存不会及时在客户端生效,DNS负载调度策略相对简单。 无法满足业务需求,发生负载均衡。 客户端的流量会首先到达负载均衡服务器,负载均衡服务器通过一定的调度算法将流量分配给不同的应用服务器。 同时,负载均衡服务器也会对应用服务器进行周期性的健康检查。 当发现故障节点时,可以将该节点从应用服务器集群中动态移除,以保证应用的高可用性。

负载均衡又分为四层负载均衡和七层负载均衡。 四层负载均衡工作在OSI模型的传输层,主要工作是转发。 客户端收到流量后,通过修改数据包的地址信息,将流量转发给应用服务器。TG:Sp_server

七层负载均衡工作在 OSI 模型的应用层。 因为需要解析应用层流量,所以七层负载均衡在接收到客户端的流量后需要一个完整的TCP/IP协议栈。 七层负载均衡会与客户端建立完整的连接并解析应用层的请求流量,然后根据调度算法选择一个应用服务器,与应用服务器建立另一个连接发送请求。 因此,第 7 层负载均衡的主要工作就是充当代理。

3-IP 负载平衡 (SNAT)

IP负载均衡:通过修改请求目标地址实现网络层负载均衡。

用户请求数据包到达负载均衡服务器后,负载均衡服务器在操作系统内核中获取网络数据包,根据负载均衡算法计算出真实的web服务器地址,然后修改数据的IP地址 数据包到真实的 Web 服务器地址。 用户进程处理。 真实WEB服务器处理完毕后,将相应的数据包返回给负载均衡服务器,负载均衡服务器将数据包的源地址修改为自己的IP地址,发送给用户的浏览器。

这里的关键是真实WEB服务器对应的数据包是如何返回到负载均衡服务器的。 一种是负载均衡服务器在修改目的IP地址的同时修改源地址,将数据包的源地址改为自己的IP,即源地址转换(SNAT)。 另一种解决方案是使用负载平衡服务器作为真实 IP 地址。 物理服务器的网关服务器,以便所有数据都进入负载平衡服务器。

IP负载均衡在内核进程中完成数据分发,比反向代理均衡具有更好的处理性能。 但是,由于所有的请求和响应报文都需要经过负载均衡服务器,负载均衡的网卡带宽成为了系统的瓶颈。

4-HTTP重定向负载均衡(少见)

HTTP 重定向服务器是一个普通的应用服务器。 它唯一的作用就是根据用户的HTTP请求计算出真实的服务器地址,并将真实的服务器地址写入HTTP重定向响应(响应状态302)并返回给浏览器。 ,然后浏览器自动请求真实服务器。

这种负载均衡方案的优点是比较简单,但缺点是浏览器需要每次请求服务器两次才能完成一次访问,性能较差; 使用 HTTP302 响应码重定向可能会被搜索引擎判断为 SEO 作弊,减少搜索结果。 结果。 排行。 重定向服务器本身的处理能力可能会成为瓶颈。 因此,这种方案在实践中很少使用。

原文来自邦阅网 (52by.com) - www.52by.com/article/90431

声明:该文观点仅代表作者本人,邦阅网系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系邦阅网或作者进行删除。

评论
登录 后参与评论
发表你的高见