负载均衡
负载均衡
负载均衡的好处
增加扩展性(increase scalability)
负载均衡器可以根据服务器的流量峰值来调整(增加或减少)服务器资源
冗余(redudant)
可以为不可避免的硬件故障和服务器宕机提供安全保障
可维护性和高性能(maintainability and performance)
具有分布在多个位置和各种云环境的web服务器的业务可以随时安排维护,以提高性能,同时对应用程序正常运行时间的影响最小,因为服务器负载平衡器可以将流量重定向到未进行维护的资源。
负载均衡常听到服务端负载均衡和客户端负载均衡,下面分别对比这两个概念。
SLB vs CLB
server side load balancer (SLB)
SLB是一个整体,应用于客户端和服务端之间。它接受传入的网络、应用程序流量,并使用各种方法在多个后端服务器之间分配流量。中间的组件负责分发客户端的请求到服务器上。
优点:初始配置比较容易
缺点:当应用整体是动态的,即便是hot reload,也很难操作
例子:nginx, envoy proxy
client side load balancer
客户端维护一个服务器ip列表,采取随机等方式选取ip转发请求。
优点:支持应用服务器动态,当启动时应用会注册它自身
缺点:初始配置比SLB困难,需要额外的注册服务,例如eureka server,eureka client,ribbon client;因为客户端侧可以知道所有应用服务器,所以也存在安全问题
例子:spring cloud ribbon
可以看到SLB和CLB技术主要在启动时配置和后续的动态配置上有差异。
负载均衡算法
随机,权重等
负载均衡相关的应用
zookeeper,ribbon
负载均衡
http://fuheihei.github.io/system_design/负载均衡/