分布式概念:负载均衡

负载均衡可以分为两种:
一种是请求负载均衡,即将用户的请求均衡地分发到不同的服务器进行处理;
另一种是数据负载均衡,即将用户更新的数据分发到不同的存储服务器(数据分片技术

网络层的角度,通常有基于 DNS、IP 报文等的负载均衡方法;
分布式系统层,主要包括轮询策略、随机策略、哈希和一致性哈希等;

顺序轮询
按服务器序号依次选择处理。

加权轮询
加权轮询为每个服务器设置了优先级,每次请求过来时会挑选优先级最高的服务器进行处理。
优点:实现简单,且对于请求所需开销差不多时,负载均衡效果比较明显。
缺点:每次请求到达的目的节点不确定,不适用于有状态请求的场景,不适用于处理请求所需开销不同的场景。

Nginx 默认的负载均衡策略就是一种改进的加权轮询策略。

随机策略
当用户请求到来时,会随机发到某个服务节点进行处理,可以采用随机函数实现。

哈希和一致性哈希策略
(如对kvu取md5求hashcode选channel,一个channel对应一个node节点)
哈希函数设置合理的话,负载会比较均衡。而且,相同 key 的请求会落在同一个服务节点上,可以用于有状态请求的场景。
除此之外,带虚拟节点的一致性哈希策略还可以解决服务器节点异构的问题。
缺点:当某个节点出现故障时,采用哈希策略会出现数据大规模迁移的情况,采用一致性哈希策略可能会造成一定的数据倾斜问题。
应用:redis

你可能感兴趣的:(分布式)