LVS 在做分发时,需要根据不同情况(包括前端请求类型、后端应用及服务器类型)选择不同的分发方式,这就是 LVS 算法。今天杜老师为大家讲讲都有哪些算法!
演示效果
效果如图:

算法列表
算法列表如下:
| 算法 | 名称 | 作用 |
|---|---|---|
| rr | 轮询调度 | 第一个请求交给 RS1,第二个请求交给 RS2,第三个请求交给 RS1,以此类推;如果两台机器性能差异较大(如一台老旧、一台强劲)则会有问题 |
| wrr | 加权轮询 | 加上权重(也就是比例值),如 RS1=2/RS2=1,则访问过程为 RS1、RS1、RS2 |
| lc | 最少链接 | 类似于 rr,会将请求调度给当前链接数最少的服务器 |
| wlc | 加权最少链接 | 如果出现多台链接数最少的情况,则根据权重来决定 |
| lblc | 基于局部最少链接 | 例如某公司 100 台机器的集群中有 10 台北京服务器,北京的用户进来后,会从这 10 台服务器中进行最少链接调度 |
| sh | 来源地址散列 | 来源地址不变,则分发的后端机器不变 |
| dh | 目的地址散列 | 目的地址不变,则分发的机器不变 |
散列算法
散列计算是根据 IP 数字,去掉点除以 RS 数量,根据余数判断请求交给哪一台服务器。
源地址散列调度算法根据请求的源 IP 地址作为散列键,从静态分配的散列表中找出对应的服务器;若该服务器可用且未超载,则将请求发送到该服务器。
目的地址散列根据请求的目标 IP 地址作为散列键,从静态分配的散列表中找出对应的服务器;若该服务器可用且未超载,则将请求发送到该服务器。
对于 FTP 这类服务,如果使用类似轮询的方法,建立传输通道后,传输数据时可能会去另一台机器取数据,但与该机器尚未建立链接,无法传输。
算法应用
应用列表:
| 算法 | 应用 |
|---|---|
| rr/wrr/lc/wlc | 适用静态请求 |
| lblc/sh/dh | 适用动态请求,例如网游,连上服务器后不能随便切换 |