整理负载均衡笔记:LVS、Nginx、Ribbon、Spring Cloud Balancer、Dubbo中的负载均衡

负载均衡就是多进程分担压力。

负载均衡策略

举例:
随机轮询加权随机加权轮询一致性哈希最小活跃度最短响应时间

加权随机就是根据节点的权重划分区间,随机数落在哪个节点的区间,就决定是哪个节点,权重越大,区间越大,随机数落入的概率越大。

加权轮询,举个例子,节点权重1、2、3,来了6个请求,第一个请求由第一个节点负责,第二个和第三个请求由第二个节点负责,最后三个由第三个节点负责。

一致性哈希是哈希环,TreeMap实现。每个节点的哈希值对大小环大小取模,放在哈希环上,以分片策略为例,来了ID,ID对应的哈希值也落在哈希环上,顺时针找到的一个节点,就是对应的节点。哈希环在增删节点时,只影响此节点和逆时针方向的第一个节点之间的ID,ID对应的数据的迁移量小于取模分片。
RedisShardedJedisMycat的分片策略、Dubbo负载均衡中用到了一致性哈希。

最小活跃度,就是选择处理中的请求最少的节点。

最短响应时间,就是选择响应时间最短的节点。

应用

Dubbo用了加权随机、加权轮询、一致性哈希、最小活跃度、最短响应时间,默认随机,也就是权重相等的加权随机。

Ribbon用了随机、轮询,默认轮询。

RedisShardedJedis用了一致性哈希,RedisGroup用了哈希槽。

分层负载

NginxRibbonDubboSpring Cloud Load Balancer控制Http,工作在应用层,是七层负载。

LVS控制TCP,工作在传输层,是四层负载。

HAProxy提供了四层负载和七层负载。KeepalivedHAProxyLVS可用于搭建RabbitMQ、Mycat、MySQL集群。

控制IP,工作在网络层,是三层负载。

控制MAC地址,工作在数据链路层,是二层负载。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃峰顶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值