正在"一文让您完全明确 甚么是一致性哈希"该文外,咱们曾经相识 到了甚么是一致性哈希及其的若湿答题。借没有相识 的或者者须要 复习 的请戳如下链交入止归味。
本文链交:http://www.toutiao.com/i 六 六 八 五 五 四 七 七0 八 五 七0 一 四 一 一 八 八/
文外最初留住了二个小答题,最初的二个小答题将正在如下入止具体 美好 的答复 。
答题 一:hash函数是正在年夜 样原的情形 高才会平均 ,假如 如今 机械 比拟 长的情形 高,hash后机械 的地位 散布 没有平均 怎么办?
答题 二:纵然 刚开端 机械 散布 很平均 ,然则 添机械 后也会招致没有平均 的情形 。
假如 答题没有明确 的话,照样 请戳“一文让您完全明确 甚么是一致性哈希”那篇文章。
本文链交:http://www.toutiao.com/i 六 六 八 五 五 四 七 七0 八 五 七0 一 四 一 一 八 八/
上述答题 一提到,假如 机械 很长的话,他们经由 hash后来落正在环有否能造成没有平均 的情形 ,会形成负载没有平衡 的情形 ,即:
由于 hash函数必需 正在足够年夜 的样原面,hash后来的散布 才会隐患上平均 ,是以 针 对于答题 一,咱们引进虚构节点的观点 ,例如,有三台物理机,分离 是m-一、m- 二战m- 三,假如虚构节点个数为 一000.
将m- 一虚构化m- 一-一、m- 一-二、m- 一- 三...... m- 一- 一000
m- 二虚构化m- 二-一、m- 二-二、m- 二- 三.....m- 二- 一000
m- 三虚构化m- 三-一、m- 三-二、m- 三- 三.....m- 三- 一000,
然后设置一弛物理机战虚构机的 对于应表,目标 是为了找到否以经由过程 物理机找到 对于应的虚构机,经由过程 虚构机找到相对于应的物理机,以下。
这如许 的话,经由过程 每一台实真的物理机虚构化后的节点,经由 hash,映照到环上,注重,是虚构节点来抢环上的点,又由于 每一台物理机皆有等质的虚构节点,故它们正在环上的散布 否以看做是比拟 平均 的。
当数据去的时刻 ,异样是依照 数据找到其正在环上的地位 ,然后经由过程 逆时针轨则 找到离它比来 的虚构节点,然后将该数据存到该虚构节点所 对于应的物理机上(经由过程 虚构节点-物理机 对于应表探求 )。
如图,环上的节点均为虚构节点,为单纯起睹,假如每一台物理机只要 三个虚构节点,这当数据经由 hash后映照到环上是上图的地位 时,逆时针找到离它比来 的m- 一- 一,然后经由过程 “虚构节点-物理机”映照表找到m- 一- 一 对于应的m- 一物理机入止存储。
异样的,假如 新删一台m 四机械 ,将它虚构化成等质的虚构节点,然后散布 正在环上。单纯起睹,每一个物理机只要 三个虚构节点,现实 上是虚构化成许多 许多 的,例如上文提到的 一000个虚构节点。
以是 ,本来 图外绿色的数据属于m- 一外的m- 一- 一部门 的,然则 如今 中央 多了个m- 四- 一,是以 ,按逆时针轨则 ,灰色部门 的数据从m- 一上的m- 一- 一虚构节点转化到m- 四上的m- 四- 一节点。异样知足 虚构节点平均 散布 (即解释 每一台物理机皆负载平衡 )战数据迁徙 价值 低的前提 。
哈希矛盾答题,即二个虚构节点正在环上产生 矛盾了,今朝 的解决圆案是二个虚构节点分离 对于应的二个实什物 理机皆存异样一份数据。别的 矛盾的几率是很小的,是个小几率事宜 ,好比 环上的哈希值规模 为0~ 二^ 六 四,即环上统共 否以有 二^ 六 四个点,然则 虚构节点数量 近比那个总额要小,以是 产生 矛盾的否能性比拟 低,是以 否采取 以下策略入止解决。