【Nginx】负载均衡 (Load Balancing)
负载平衡(Load balancing)是一种计算机技术 , 用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载 , 以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的 。使用带有负载平衡的多个服务器组件 , 取代单一的组件 , 可以通过冗余提高可靠性 。 负载平衡服务通常是由专用软件和硬件来完成 。主要作用是将大量作业合理地分摊到多个操作单元上进行执行 , 用于解决互联网架构中的高并发和高可用的问题 。
简而言之 , 我们不使用负载均衡的网络服务 , 只有一个服务器 , 这个服务器承担着所有的任务 。 如果突然访问量很大 , 可能会达到服务器的处理能力上限 , 会变得卡顿;如果服务器突然碰上了内部错误 , 死机后则会导致所有的用户都无法继续访问服务 。
本文插图
如果说一台网页服务器 server_1.mcoder.cc 192.168.1.100 可以同时提供一百万的用户访问 , 那么当同时访问的用户量达到一百五十万时 , 这个网页服务器变会碰上性能瓶颈 , 可能所有用户的体验都不够好 。 这时我们可以选择简单的增加一台服务器 server_2.mcoder.cc 192.168.1.101, 对用户进行分流 , 如果两台机器均分用户 , 则每台只用服务七十五万的用户 , 在网页服务器的能力范围内 , 所有用户都能获得很好的体验 。 而如何让用户选择哪个服务器提供服务便是负载均衡服务器做的工作 。 负载均衡服务器对外仅是一台服务器 server.mcoder.cc 192.168.1.99, 他会选择将用户的请求转发给 server_1 或者 server_2。
负载均衡实现了数个服务器同时提供服务 , 减少了单一服务器的负载 , 使一组服务器处理能力得到提升 。 而且负载均衡提高了系统的容错能力 , 带来了服务可用性的提升 , 如果其中一台服务器宕机后 , 还有服务器在正常工作 , 负载均衡服务器可以将后续的请求转发给还在工作的服务器 , 将死机服务器剔除 。
本文插图
目前几乎所有的云服务商都提供了负载均衡服务 , 如果使用诸如阿X云、腾X云的话 , 直接使用他们提供的负载均衡方案即可 , 简单粗暴快捷 。 但我们可以了解下主流的负载均衡算法 , 对于配置服务以及后台开发技术面试都有帮助的 。
常见负载均衡算法 负载均衡算法决定了负载均衡服务器如何将一个请求分配给后面的诸多服务器 。
- 轮询算法(Round Robin) 和 加权轮询(Weight Round Robin)法 : 轮转法意味着 LB 服务器会按顺序将请求分发给服务器 。 比如负载均衡器会将第一个请求分配给第一个服务器 , 然后下一个请求分配给第二个服务器 , 这样分配下去分配完一轮之后回到开头分配给第一个服务器 。
- 随机法 和 加权随机(Weight Random)法 :很粗糙的方法 , 通过生成随机数 , 将连接随便转发给后端的一个服务器 , 当访问量加大 , 实际效果接近于平均分配流量到每一台后端服务器 , 也就是轮询的效果 。
- 最少连接(Least Connections) : 最少连接方法会选择当前连接数量最少的服务器分发请求 。
- 中金网▲恒天财富研究院:4月份建议均衡配置消费、科技、低估值板块
- [手机中国]“芯”好“机”才会好!荣耀30S:均衡极致的中端旗舰!
- 「手机中国」Pro用实力诠释极致均衡,找不到短板的高端机!一加7T
- 「c114通信网」赵明:荣耀坚持拍照是综合体验的均衡 过分强调单一因素可能导致其他体验下降
- 「江苏省」全国前50强城市,均衡发展的江苏省,为何占了9个城市
- 【乐居网】多元战略向未来,“千亿新秀”美的置业:均衡布局稳销售
- 【云南】云南实现县域义务教育发展基本均衡
- 程序员世界■直流微电网负载均流控制的新策略
- Java架构师技术栈分享:request body读取流程详解,nginx
- 挖贝网■主营业务保持均衡增长,复星医药2019年净利33.22亿增长23%