高性能之负载均衡

文章目录

负载均衡

静态负载均衡算法

随机和加权法

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

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

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

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

轮询和加权轮询法

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

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

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

一致性 Hash 法

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

动态负载均衡

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

最小连接法

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

最快响应时间

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

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

相关推荐
非凡ghost4 小时前
视频剪辑不用等渲染,这款开源工具让切分合并秒级完成
运维·电脑·软件需求
FII工业富联科技服务6 小时前
Omniverse 数字孪生与柔性自动化,如何破解产能与交付、设备与空间的双重困境?
运维·自动化·devops
润滑卫士6 小时前
油液介电常数在线监测:测量原理与油液老化状态评估方法
运维
Rock Chin6977 小时前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化
浩浩测试一下7 小时前
Linux 底层知识点 1
linux·运维·服务器
Eloudy7 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技8 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据8 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
忆挽篱笙歌9 小时前
环境变量,本地变量
linux·运维·服务器
码间留白10 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions