带你了解负载均衡的前世今生(1)
负载均衡是程序员技术生涯中绕不开的知识点,也是一个资深程序员技术实力的体现。所以不管我们是实战应用,还是外出吹牛,都有必要好好学习负载均衡,今天就先带大家简单了解下。
负载均衡的起源:
在互联网发展初期,我们的应用几乎都是单体架构,通过一台服务器即可实现系统的正常运行,但随着互联网的发展,用户量逐渐增长,访问量逐渐增大,仅在一台服务器上搭建的系统已经不能满足用户的需要,在访问量过大时 很容易出现单点故障(Single Point of Failure),也就是我们常见的网站延迟、瘫痪、甚至崩溃的情况。
为了解决由于用户访问量过大导致的服务器单点故障问题,负载均衡技术应运而生。
什么是负载均衡?
负载均衡可以理解为是一种分配处理网络请求的技术,其目的是在多台服务器上分散负载,以确保应用程序可以按需扩展以应对增加的流量。它通过将请求分配到多台服务器上,减少了单个服务器的压力,并确保了当一台服务器出现故障时,请求仍然能够被处理。如下图:
那么负载均衡有哪些常见的算法和策略呢?
负载均衡常见策略和算法:
1、轮询策略(Round Robin)
根据客户端发送到负载均衡服务器的请求顺序,轮流转发给集群中的子集服务器,这样每个子集服务器都能均匀的分担请求。这是负载均衡最简单的处理方式
2、随机策略(Random)
随机选取集群中的子集服务器来分担客户端的请求,就像掷骰子一样,随机性较强,因此每个服务器分担的请求不一定均等
3、加权策略(Weighted Round Robin)
根据子集服务器
给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
4、源地址哈希(Source IP Hash)
根据客户端的IP地址,通过哈希函数计算得到一个数值,使用此数值对服务器集群进行取模运算,最终得到客户端访问服务器的序号,采用此策略进行负载均衡,同一IP地址的客户端,在后端服务器集群数量不变时,每次都会映射到同一台后端服务器进行访问
5、最小连接数(Least Connections)
根据服务器当前的连接情况进行负载均衡,当客户端请求数据时,此策略首先会查询当前服务器集群下每一台服务器的连接数量,最终会选取连接数量最少的一台服务器处理请求,此策略是动态分配服务器的一种算法。需要根据不同场景进行灵活配置
常用的负载均衡软件有哪些?
目前常用的负载均衡软件有Nginx、LVS、HAProxy,有以上三种负载均衡软件的介绍,我们下篇文章再见。