负载均衡导学

2020-10-27  本文已影响0人  大能能

负载均衡

负载均衡(Load Balancing,简称LB),用于在计算机集群、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到资源使用最优化、吞吐率最大化、响应时间最小化,同时避免过载的目的。通常由专用软件或硬件来完成。

在分布式系统中,负载均衡组件通常位于客户端和服务端中间,它接收客户端请求并使用特定算法将流量分发到服务端不同节点,以降低单个节点的负载;同时,它可以跟踪和记录资源的状态,如果一个集群中的某个节点响应变慢或者出错率上升,负载均衡组件可以暂停将请求分发到该节点;综上,负载均衡组件可以提升应用集群的响应效率和可用性。

为了使系统更具可伸缩性,我们可以在系统的不同层级使用负载均衡组件:

负载均衡带来的好处

负载均衡实现方式

硬件实现
软件实现

负载均衡协议划分

根据网络七层协议划分,不同层次的使用方式并不一样,比如:在应用层使用Nginx可以直接分发Http请求到Tomcat服务器;在传输层使用HaProxy根据IP分发数据包,不同层次由低到高分别是

链路层
网络层
传输层
应用层

负载均衡常见类型

服务端负载均衡

对于上述提到的负载均衡技术,基本都是服务端负载均衡,比如Nginx,对于调用方来说,只需要知道Nginx地址,并将请求交给Nginx,Nginx会根据配置好的负载均衡策略将请求分发到后台服务节点。

客户端负载均衡

客户端负载均衡是相对服务端负载均衡而言的,当调用方调用服务时,服务端会从可用的服务器列表中,选出一个可提供服务的节点,然后由客户端直接调用该服务节点。

负载均衡常见算法

在了解具体负载均衡算法之前,我们先看看负载均衡器是如何选择服务节点的?它必须确保提供服务的节点,都能够提供正确的响应,然后根据配置好的算法规则从多个节点中选择一个健康的节点。

为了确保选择的节点都是健康的,负载均衡器需要具备健康检测功能,通常是定时地发送心跳检测到服务器节点,比如2秒钟一次,如果服务器超过限制次数未响应,则从可用的服务器列表中剔除掉。

以下是常用的负载均衡算法,不同算法可用满足不同的需求:

以上通过几个方面简单介绍负载均衡,接下来会结合项目中经常用到的组件,着重介绍Nginx、LVS等实战应用,欢迎继续关注。

上一篇下一篇

猜你喜欢

热点阅读