一致性 hash 算法主要应用在分布式系统中,试想 nginx 中配置的负载均衡策略是 hash,
即同一 IP 的请求都分发到同一台机器上,那么在添加一台或下线一台服务器后,假设你用的是
session 保存用户态的方式,你觉得它会出问题吗

实际上在 nginx 中也支持用一致性 hash 来避免这个问题

1
2
3
4
5
6
upstream my_upstream {
server 127.0.0.1:8080 weight=1;
server 127.0.0.2:8080 weight=1;
# 表示使用请求URI进行一致性哈希。
hash $request_uri consistent;
}

参考

https://zh.wikipedia.org/wiki/%E4%B8%80%E8%87%B4%E5%93%88%E5%B8%8C

https://gallery.selfboot.cn/zh/algorithms/hashring

https://leehao.me/%E4%B8%80%E8%87%B4%E6%80%A7Hash-Consistent-Hashing-%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90/

https://mp.weixin.qq.com/s/yimfkNYF_tIJJqUIzV7TFA