“负载均衡”:是什么?为什么?怎么做?

负载均衡建立在现有网络结构之上 , 它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性 。
负载均衡(Load )其意思就是分摊到多个操作单元上进行执行 , 例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等 , 从而共同完成工作任务 。
负载均衡是高可用网络基础架构的的一个关键组成部分 , 有了负载均衡 , 我们通常可以将我们的应用服务器部署多台 , 然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性 。
这是一个没有负载均衡机制的web架构:
【“负载均衡”:是什么?为什么?怎么做?】

“负载均衡”:是什么?为什么?怎么做?

文章插图
上图中的架构有什么缺陷了?首先 , 用户是通过网络直接和web服务器相连 , 想象一下 , 如果这个服务器挂了(这种情况随时都可能发生的) , 那么用户的请求就会得不到响应 , 将无法访问该网站 , 这就是著名的单点故障问题 , 这肯定是不行的 , 一般而言 , 商业上的网站其可靠性需要达到至少4个9 , 也就是99.99&以上 。
其次 , 即使服务器是正常工作的情况 , 但是如果很多用户在同一时间内访问服务器 , 超过了服务器的处理能力 , 那么会出现响应速度慢甚至无法连接的情况 , 这也是用户无法接受的 。
负载均衡的出现可以很好的解决上面两个问题 , 通过引入一个负载均衡器和至少两个web 服务器 , 可以有效的解决上面两个问题 。注:通常情况下 , 所有的后端服务器会保证提供相同的内容 , 以便用户无论哪个服务器响应 , 都能收到一致的内容 。
“负载均衡”:是什么?为什么?怎么做?

文章插图
如上图架构 , 现在 , 即使App 01即使挂了 , 负载均衡会将用户的请求转发到正常工作的App 02上 , 这解决了上面的第一个问题;其次 , 根据业务需要 , 负载均衡后端的App可以很方便的扩展 , 这样就能解决第上面的第二个问题 。但是 , 现在单点故障问题转移到了负载均衡器 , 可以通过引入第二个负载均衡器来缓解 , 后面还会讲到 。
负载均衡器一般根据两个因素来决定要将请求转发到哪个服务器 。
1:确保所选择的后端服务器是正常工作的 , 能给对用户的请求做出响应;
2:根据预先设置的负载均衡算法从健康服务器池中进行选择 。
由于