做一个什么样的网站,开发公司交房流程及注意事项,全国工商企业信息查询官网,asp网站后台源码负载均衡是高可用网络基础架构的的一个关键组成部分#xff0c;有了负载均衡#xff0c;我们通常可以将我们的应用服务器部署多台#xff0c;然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。
为什么要引入负载均衡…负载均衡是高可用网络基础架构的的一个关键组成部分有了负载均衡我们通常可以将我们的应用服务器部署多台然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。
为什么要引入负载均衡 先看一个没有负载均衡机制的web架构 上图中的架构有什么缺陷了首先用户是通过网络直接和web服务器相连想象一下如果这个服务器挂了这种情况随时都可能发生的)那么用户的请求就会得不到响应将无法访问该网站这就是著名的单点故障问题这肯定是不行的一般而言商业上的网站其可靠性需要达到至少4个9也就是99.99以上。
其次即使服务器是正常工作的情况但是如果很多用户在同一时间内访问服务器超过了服务器的处理能力那么会出现响应速度慢甚至无法连接的情况这也是用户无法接受的。
负载均衡的出现可以很好的解决上面两个问题通过引入一个负载均衡器和至少两个web 服务器可以有效的解决上面两个问题。注通常情况下所有的后端服务器会保证提供相同的内容以便用户无论哪个服务器响应都能收到一致的内容。 如上图架构现在即使App 01即使挂了负载均衡会将用户的请求转发到正常工作的App 02上这解决了上面的第一个问题其次根据业务需要负载均衡后端的App可以很方便的扩展这样就能解决第上面的第二个问题。但是现在单点故障问题转移到了负载均衡器可以通过引入第二个负载均衡器来缓解后面还会讲到。 负载均衡如何选择要转发的后端服务器
负载均衡器一般根据两个因素来决定要将请求转发到哪个服务器。
1确保所选择的后端服务器是正常工作的能给对用户的请求做出响应
2根据预先设置的负载均衡算法从健康服务器池中进行选择。
由于负载均衡器只应当选择能正常做出响应的后端服务器因此就需要有一种机制能判断它所连的后端服务器是否正常工作。为了监视后台服务器的运行状况运行状态检查服务会定期尝试使用转发规则定义的协议和端口去连接后端服务器。如果某个服务器没有通过健康检查就会从健康池中剔除保证流量不会被转发到该服务器直到其再次通过健康检查为止。 负载均衡算法
负载均衡算法决定了后端的哪些健康服务器会被选中。下面是几个常用的算法这里只是简单介绍不具体研究其算法实现了后面会专门用一篇文章来总结
轮询为第一个请求选择健康池中的第一个后端服务器然后按顺序往后依次选择直到最后一个然后循环。
最小连接优先选择连接数最少也就是压力最小的后端服务器在会话较长的情况下可以考虑采取这种方式。
散列根据请求源的 IP 的散列hash来选择要转发的服务器。这种方式可以一定程度上保证特定用户能连接到相同的服务器。如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器可以考虑采取这种方式。
最后想要解决负载均衡器的单点故障问题可以将第二个负载均衡器连接到第一个上从而形成一个集群。如下图所示 当主负载均衡器发生了故障就需要将用户请求转到第二个负载均衡器。由于 DNS 更改通常会在较长的时间才能生效因此需要有一种能灵活解决 IP 地址重新映射的方法比如浮动 IPfloating IP。这样域名可以保持和相同的 IP 相关联而 IP 本身则能在服务器之间移动。下面就是一个使用浮动 IP 的负载均衡架构动态示意图