ELB负载均衡

举报
object 发表于 2024/03/26 20:17:19 2024/03/26
【摘要】 负载均衡是什么?负载均衡 是指将用户请求分配到不同的服务器处理。负载均衡服务可以由专门的软件或者硬件完成。两者的区别主要是 软件成本低,硬件性能好,但成本高。常见的软件负载均衡:nginx、LVS、HAproxy。常见的硬件负载均衡:F5、A10、Array。硬件的性能更好,更稳定,但是成本相对高很多。软件相对硬件性能低,但是成本低,除非是并发特别高,性能要求高,综合考量软件负载均衡更好。负...

负载均衡是什么?

负载均衡 是指将用户请求分配到不同的服务器处理。负载均衡服务可以由专门的软件或者硬件完成。两者的区别主要是 软件成本低,硬件性能好,但成本高。

  • 常见的软件负载均衡:nginx、LVS、HAproxy。
  • 常见的硬件负载均衡:F5、A10、Array。

硬件的性能更好,更稳定,但是成本相对高很多。软件相对硬件性能低,但是成本低,除非是并发特别高,性能要求高,综合考量软件负载均衡更好。

负载均衡分类

负载均衡分为 服务端负载均衡客户端负载均衡。一般服务端负载均衡使用较多

服务端负载均衡

服务端负载均衡 主要应用在 外部请求 和 服务器 之间。可以使用 软件或 硬件 实现。

根据OSI模型,服务端负载均衡还可分为:

  • 二层负载均衡
  • 三层负载均衡
  • 四层负载均衡:传输层,主要协议TCP/UDP。核心基于 IP + 端口的负载均衡。
  • 七层负载均衡:应用层,主要协议HTTP。核心基于HTTP请求报文信息(URL、Cookie)的负载均衡。执行七层负载均衡的服务器一般也称为反向代理服务器。常见:DNS、Nginx

四层负载均衡性能很强,七层负载均衡功能更强。 不过性能差异基本可以忽略。

工作中一般使用Nginx做七层负载均衡,LVS(linux Vrirtual Server)来做四层负载均衡。

OSI模型图如下

客户端负载均衡

这里的客户端不是指用户发送请求的客户端,客户端负载均衡主要应用于系统内部的不同的服务之间,在客户端负载均衡中,客户端会自己维护一份服务器的地址列表,发送请求之前,客户端根据负载均衡算法来选择具体某一台服务器来处理。

客户端负载均衡器和服务运行在同一个进程或者说 Java 程序里,不存在额外的网络开销。不过,客户端负载均衡的实现会受到编程语言的限制,比如说 Spring Cloud Load Balancer 就只能用于 Java 语言。

Java 比较常用Spring Cloud Load Balancer(官方推荐)和Ribbon (Netflix)。

负载均衡的常见算法

  • 随机:随机算法,可加权重。不过可能会出现部分机器一段时间内无法被随机到的问题。
  • 轮询:依次分配,可加权重。
  • 两次随机:随机选出两台服务器。根据两台比较,选择更合适的一台,减少一直随机一台服务器的风险
  • 哈希:将请求参数哈希,根据哈希值决定分配到哪台服务器。主要应用在一些需要前后的请求落在同一台服务器的情况。
  • 一致性哈希:哈希的优化,避免增加和减少导致的哈希值不同
  • 最小连接:遍历服务器节点列表,选择连接数最小的服务器来响应。
  • 最少活跃:遍历服务器节点列表,选择活动连接数最小的服务器响应。
  • 最快响应时间:根据服务器响应时间,选择最短的响应时间的服务器响应。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。