常见的负载均衡LVS、Nginx和HAProxy

LVS:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢章文嵩博士为我们提供如此强大实用的开源软件。

LVS的特点是:

1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;

2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;

3、工作稳定,自身有完整的双机热备方案;

4、无流量,保证了均衡器IO的性能不会收到大流量的影响;

5、应用范围比较广,可以对所有应用做负载均衡;    6、软件本身不支持正则处理,不能做动静分离。


Nginx的特点是:

1、工作在网络的7层之上,可以针对http应用做一些分流的策略;

2、Nginx对网络的依赖非常小;

3、Nginx安装和配置比较简单,测试起来比较方便;

4、可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;

5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等;

6、Nginx仅能支持http和Email;


HAProxy的特点是:

1、HAProxy是支持虚拟主机的;

2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;

3、支持url检测后端的服务器出问题的检测会有很好的帮助;

4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;

5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS;

6、HAProxy的算法多;


LVS主要的调度算法:

1:轮询算法(RR) 就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是实现简单。轮询算法假设所有的服务器处理请求的能力都是一样的,调度器会将所有的请求平均分配给每个真实服务器。

2:加权轮询算法(WRR) 主要是对轮询算法的一种优化与补充,LVS会考虑每台服务器的性能,并给每台服务器添加一个权值,如果服务器A的权值为1,服务器B的权值为2,则调度到服务器B的请求会是服务器A的两倍。权值越高的服务器,处理的请求越多

3:最小连接调度算法(LC) 将把请求调度到连续数量最小的服务器上。

4:加权最小连接算法(WLC) 则是给每台服务器一个权值,调度器会尽可能保持服务器连接数量与权值之间的平衡。

5:基于局部性的最少连接调度算法(lblc) 是请求数据包的目标IP地址的一种调度算法,该算法先根据请求的目标IP地址寻找最近的该目标IP地址所有使用的服务器,如果这台服务器依然可用,并且用能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其他可行的服务器。

6:带复杂的基于局部性最少的连接算法(lblcr) 激励的不是一个目标IP与一台服务器之间的连接记录,他会维护一个目标IP到一组服务器之间的映射关系,防止单点服务器负责过高。

7:目标地址散列调度算法(DH) 也是根据目标IP地址通过散列函数将目标IP与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标IP的请求会固定发给该服务器

8:源地址散列调度算法(SH) 与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小车博客

Linux网络优化加速一键脚本

6663
来自专栏AILearning

TensorFlow架构

我们设计了TensorFlow进行大规模的分布式训练和推理,但它也足够灵活,以支持新机器学习模型和系统级优化的实验。 本文档描述了使得这种组合规模和灵活性成...

4087
来自专栏Petrichor的专栏

tensorflow: tensorboard 探究

  代码运行完成之后,可以用bash脚本一键浏览器访问tensorboard终端:

1021
来自专栏玉树芝兰

如何在 GPU 深度学习云服务里,使用自己的数据集?

(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)

2472
来自专栏PaddlePaddle

【FAQ】集群训练与预测相关问题汇总

导语 在使用指南的最后一部分,我们汇总了使用PaddlePaddle过程中的常见问题,本部分推文目录如下: 2.22:【FAQ】模型配置相关问题汇总 2.23:...

3567
来自专栏java一日一条

多种负载均衡算法及其 Java 代码实现

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽、增加 吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

2031
来自专栏玉树芝兰

如何用VOSviewer分析CNKI数据?

学会了用VOSviewer分析Web of Science数据后,想不想知道如何用它分析中文文献?本文用CNKI数据做样例,一步步教你实现步骤。

1943
来自专栏WeTest质量开放平台团队的专栏

深度了解Android 7.0 ,你准备好了吗?

8月22日,谷歌正式推送Android 7.0 Nougat(牛轧糖)正式版,首发推送了多款Nexus设备。除了修复常规BUG,Android 7.0还新增了分...

8701
来自专栏后端云

compute node ha 主流开源实现

nova evacuate和热迁移很像。都是想实例从一个节点转移到另外一个节点。区别主要是热迁移在正常状态下进行的,疏散时在异常状态下进行的。用一个形象的比如就...

1883
来自专栏小白课代表

无需PS 一键编辑、压缩GIF。

微信公众平台规定GIF图不得超过2M,但是一张清楚的时间长的动图录制出来怎么可能那么小呢!还有聊天的时候,看到好玩的动图想要添加到表情,然后。。。

4321

扫码关注云+社区

领取腾讯云代金券