参考:
背景:
常用的hash算法虽然能建立数据和节点的映射关系,但每次在节点数量发生变化的时候,最坏情况下所有数据都需要迁移,因此不适用节点数量变化的分布式场景。为了减少迁移的数据量,就出现了一致性hash算法。
应用场景:分布式缓存系统
1.Hash环:
一致性hash是指将 “存储节点” 和 “数据” 都映射到一个首尾相连的hash环上。如果增删节点,仅影响该节点在hash环上顺时针相邻的后继节点,其他数据不会受到影响。
-
第一步:对存储节点进行哈希计算,也就是对存储节点做哈希映射,比如根据节点的 IP 地址进行哈希(用ip地址的哈希值对环上的节点个数取模,比如ip地址的哈希值为1234,节点个数N,那么可映射到第1234%