高性能之负载均衡

文章目录

负载均衡

静态负载均衡算法

随机和加权法

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

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

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

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

轮询和加权轮询法

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

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

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

一致性 Hash 法

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

动态负载均衡

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

最小连接法

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

最快响应时间

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

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

相关推荐
哲讯智能科技7 小时前
苏州SAP代理商:哲讯科技助力企业数字化转型
大数据·运维·人工智能
十五年专注C++开发7 小时前
Qt .pro配置gcc相关命令(三):-W1、-L、-rpath和-rpath-link
linux·运维·c++·qt·cmake·跨平台编译
qq_628515767 小时前
Centos与RockLinux设置静态ip
linux·运维·centos
程序员老乔8 小时前
【Dify系列】【一】【安装与部署】【ubuntu22.04安装docker部署dify1.4.2】
运维·docker·容器
沧浪之水120101379 小时前
linux常用命令
linux·运维·服务器
梦会实现9 小时前
无外接物理显示器的Ubuntu系统的远程桌面连接(升级版)
linux·运维·ubuntu·计算机外设
Hello.Reader9 小时前
NGINX 四层共享内存区同步模块实战 `ngx_stream_zone_sync_module`
运维·nginx
暗离子跃迁9 小时前
达梦数据库单机部署dmhs同步复制(dm8->kafka)
linux·运维·数据库·分布式·学习·kafka·达梦数据库
北城笑笑10 小时前
Server 11 ,⭐通过脚本在全新 Ubuntu 系统中安装 Nginx 环境,安装到指定目录( 脚本安装Nginx )
linux·运维·前端·nginx·ubuntu
zsyzClb10 小时前
总结用ubuntu一直以来遇到的问题
linux·运维·ubuntu