什么是负载均衡?

负载均衡可以分为两种:

  • 一种是请求负载均衡,即将用户的请求均衡地分发到不同的服务器进行处理;
  • 另一种是数据负载均衡,即将用户更新的数据分发到不同的存储服务器。

服务请求的负载均衡方法

计算机领域中,在不同层有不同的负载均衡方法:

  • 从网络层的角度,通常有基于 DNS、IP 报文等的负载均衡方法;
  • 在中间件层(也就是我们专栏主要讲的分布式系统层),常见的负载均衡策略主要包括轮询策略、随机策略、哈希和一致性哈希等策略。

轮询策略

核心思想是服务器轮流处理用户请求,以尽可能使每个服务器处理的请求数相同。

轮询策略主要包括:

  • 顺序轮询

image.png

  • 加权轮询
    • 每分配一次, 优先级减1

image.png

轮询策略适用于用户请求所需资源比较接近的场景。

随机策略

随机策略也比较容易理解,指的就是当用户请求到来时,会随机发到某个服务节点进行处理,可以采用随机函数实现。这里,随机函数的作用就是,让请求尽可能分散到不同节点,防止所有请求放到同一节点或少量几个节点上。

哈希和一致性哈希策略

带虚拟节点的一致性哈希策略还可以解决服务器节点异构的问题。

对比

image.png

总结

image.png