高性能之负载均衡

文章目录

负载均衡

静态负载均衡算法

随机和加权法

随机法是最简单粗暴的负载均衡算法。

如果没有配置权重的话,所有的服务器被访问到的概率都是相同的。如果配置权重的话,权重越高的服务器被访问的概率就越大。

未加权重的随机算法适合于服务器性能相近的集群,其中每个服务器承载相同的负载。加权随机算法适合于服务器性能不等的集群,权重的存在可以使请求分配更加合理化。

不过,随机算法有一个比较明显的缺陷:部分机器在一段时间之内无法被随机到,毕竟是概率算法,就算是大家权重一样,也可能会出现这种情况。
于是,轮询法来了!

轮询和加权轮询法

轮询法是挨个轮询服务器处理,也可以设置权重。

如果没有配置权重的话,每个请求按时间顺序逐一分配到不同的服务器处理。如果配置权重的话,权重越高的服务器被访问的次数就越多。

未加权重的轮询算法适合于服务器性能相近的集群,其中每个服务器承载相同的负载。加权轮询算法适合于服务器性能不等的集群,权重的存在可以使请求分配更加合理化。

一致性 Hash 法

相同参数的请求总是发到同一台服务器处理,比如同个 IP的请求。

动态负载均衡

在实时中进行适应,当分发请求时会考虑到活跃的性能指标和服务器条件。

最小连接法

这些连接算法将每个新请求发送到当前活跃连接或打开请求最少的服务器,这需要实时跟踪每个后端服务器上的正在进行的连接数量,优点是新请求会根据剩余容量灵活地路由,然而,如果连接不均匀地堆积,负载可能不经意地集中在某些服务器上。

最快响应时间

最少响应时间算法将传入请求发送到当前延迟最低或响应时间最快的服务器,每个服务器的延迟都会持续被测量并被考虑在内。这种方法是高度自适应和反应迅速的,然而它需要持续的监测,这会带来显著的开销并增加复杂性,它也没有考虑每个服务器已经有多少现有的请求。

总的来说,简单的静态算法和更自适应的动态算法之间存在明显的权衡。我们需要考虑特定的性能目标、能力和约束来选择负载均衡策略,像轮询这样的静态算法很适合无状态的应用程序,动态算法有助于优化大型复杂应用的响应时间和可用性

相关推荐
zhangfeng11335 分钟前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透1 小时前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦1 小时前
nginx
运维·nginx
Gofarlic_oms12 小时前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.2 小时前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器
大大水瓶2 小时前
HAProxy 从入门到实战:负载均衡与流量管理全解析
运维·负载均衡
小马爱打代码2 小时前
Docker:完全指南从入门到精通
运维·docker·容器
三天不学习3 小时前
Linux inotify 机制详解,解决“用户实例限制”问题
linux·运维·c#
地衣机房除尘3 小时前
科普漫画:机房数据中心防火小剧场
大数据·运维
ZFB00013 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——插入U盘(移动硬盘)为只读状态
linux·运维·kylin