首页 > 编程语言 >5大负载均衡算法 (原理图解)

5大负载均衡算法 (原理图解)

时间:2022-10-25 07:44:07浏览次数:74  
标签:负载 请求 轮循 访问 算法 均衡 服务器 图解

5大负载均衡算法(原理图解)-mikechen的互联网架构

负载均衡,是分布式架构的必备技术,也是进阶的必学技术,需要重点掌握。

本文,我将重点详解负载均衡的5大核心算法 @mikechen

先来看张图,下面是一个典型的集群和负载均衡架构图
5大负载均衡算法(原理图解)-mikechen的互联网架构

当一台机器不能承受访问压力时,我们大多会通过横向增加两台、或者多台服务器,来共同承担访问压力,来极大的降低后端的访问压力,提升用户的访问性能。

但是,从一台扩展到多台服务器后,如何将客户端的流量、分发到具体的服务器呢?是通过服务器 1 、还是服务器 3 ?

这就涉及到了具体的负载均衡算法。

目录

1.  轮循

5大负载均衡算法(原理图解)-mikechen的互联网架构

轮询很容易实现,将请求按顺序轮流分配到后台服务器上,均衡的对待每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
适合场景:适合于应用服务器硬件都相同的情况。

2.  加权轮循

5大负载均衡算法(原理图解)-mikechen的互联网架构
在轮询的基础上根据硬件配置不同,按权重分发到不同的服务器。
适合场景:跟配置高、负载低的机器分配更高的权重,使其能处理更多的请求,而性能低、负载高的机器,配置较低的权重,让其处理较少的请求。

3.  随机

5大负载均衡算法(原理图解)-mikechen的互联网架构
通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。

随着调用量的增大,客户端的请求可以被均匀地分派到所有的后端服务器上,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的效果。

4.  最少连接

5大负载均衡算法(原理图解)-mikechen的互联网架构
记录每个服务器正在处理的请求数,把新的请求分发到最少连接的服务器上,因为要维护内部状态不推荐。

5.  源地址散列

5大负载均衡算法(原理图解)-mikechen的互联网架构
根据服务消费者请求客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。

适合场景:根据请求的来源IP进行hash计算,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

以上,是对 5 大负载均衡算法及其原理的解析,对掌握及使用负载均衡,具有一定的参考价值,建议收藏、经常温顾。

如果觉得有用,请 点赞 转发 支持下,谢谢。

 

作者简介

陈睿 | mikechen , 10年+大厂架构经验,「mikechen 的互联网架构」系列文章作者,专注互联网架构技术。

标签:负载,请求,轮循,访问,算法,均衡,服务器,图解
From: https://www.cnblogs.com/mikechenshare/p/16823315.html

相关文章

  • 排序算法集锦
    1冒泡排序思想:相邻数据比较,数组中每两个相邻的数字都要比较,从头比较到末尾确定一个数所在的位置;如此,N个数,比较NUM=n-1个轮次,每个轮次做n-num次两两比较;代码如下:(这里为什......
  • 代码随想录Day9 KMP算法
    LeetCode 剑指offer 58 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符......
  • (算法课)大整数相乘 |向量卷积|多项式相乘| 快速傅里叶变换FFT
    D(1021):很大的ABTimeLimit:1SecMemoryLimit:256MbSubmitted:6Solved:0Description如题,计算AB的值并输出。Input两行,分别代表A和B。A和B......
  • 858 Prim算法求最小生成树
    #include<bits/stdc++.h>usingnamespacestd;constintN=510,INF=0x3f3f3f3f;intn,m;intg[N][N];//储存边intdist[N];//储存点到集合的距离intst[N......
  • zabbix默认监控负载取值不正确。
    服务器负载很高(如下图),查看zabbix监控却没有告警(原因:模板TemplateOSLinux监控取值与实际服务器内负载不一致)解决办法:找到Processorload(1minaveragepercore......
  • 全排列算法的一种
    链接:https://ac.nowcoder.com/acm/problem/16661来源:牛客网题目描述人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理......
  • 贪心算法-455分发饼干
    题目455分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干......
  • HotSpot的算法实现
    枚举根节点由于目前的主流Java虚拟机使用的都是准确式GC,当执行系统停顿下来后,并不需要一个不漏地检查完所有执行上下文和全局的引用位置,虚拟机应当是有办法直接得知哪些地......
  • 垃圾收集算法
    标记-清除算法Mark-Sweep首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。由两个不足:效率问题标记和清除两个过程的效率都不高空间问题标记清除之后......
  • ST算法
    ST算法ST算法可以在\(O(N\logN)\)时间的预处理后,以\(O(1)\)的时间复杂度在线回答区间最值问题。状态转移一个序列的子区间个数显然有\(N^2\)个,根据倍增思想,我们......