一致性 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; 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