公鸡图片,五张图了解一致性Hash原理,一英镑等于多少人民币

various 牛皮癣图片

啥是Hash值?

hash(散列,杂糅)函数,是将恣意长度的数据映射到有限长度的域上。直观稳组词解说起公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币来,便是对一串数据m进行杂糅,雪花秀官网输出另一段固定长度的数据h,作为这段数据的特征(指纹)。

怎么确保不管数据古筝简笔画块m多大,其输出贵州民族大学值h为固定长度?

将m分红固定长度(如128位),顺次进行hash运算,然后用不同的办法迭代即可(如前一块的hash值与后一块的hash脑卒中值进行异或)。假如不行128位用0补全或许用1补全随意,算法中约好就能够了。

为了处理什么问题?

分布式体系中完成负载均衡,常常需求将同一个客户端发送的恳求指定到同一个服务器端来做处理,包含缓存,Ses洪晃sion持久等场景。

Hash取模方法

最开端的方法是通博壹吧论坛白菜大全过对客户端某特征的Hash值取模,例如:对客户端IP地址Hash后取模,依据模寻觅服务器。

欢乐颂演员表

Hash医馆笑传取模方法的坏处

这种方法在服务器个数固定不变时没有问题。假如需求弹性扩容或毛病停机的状况下,本来的取模公式就会发作改变李姗璟:Hash(IP) % 4会变成Hash(IP) % ?。此刻IP地址通过取模运算的成果将发作很大改变,依据模值获取的服务器也会变得不可控。

共同性Hash的原理

为防止上述Hash取模方法的问题,提出共同性Hash处理方案。意图是当服务器个数发作改变时,尽可能少的影响客户端到服务器的映射联系。

环形Hash空间公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币

一般的Hash算法都是将value映射为一个32位的key值,也便是0 ~ 2^32-1的数值空间。咱们能够将这个空间幻想成一个首尾相连的环。

把服务器映射到环形空间上

使用服务器的某特征的Hash值,将服务器映射到环形空间上。服务器与服务器的距离便是各服务器的办理区域。

把客户端映射到环形空间

将客户端映射到环形空间,构成服务器和客户端Hash值的交草船借箭替呈现状况。

客户端逆时针(顺时针也行,只需确保规矩共同即可)找亚洲美到离自己最近的服务器Hash值,算作shirt客户端与此服务器树立映射联系。

增加服务器节点

Server#4为新增服务器节点,将本来Server#3到Server#0统辖的区域分叶音英割云檀成两部分,受影响的客户端只要Client#2。它由本来与Server#0树立的映射联系变成与Server#4树立映射联系。

同理,删去服务器节点也只会影响部分节点。

共同性Hash便是将本来点到点的映射联系变成点到线的映射联系,然后削减因服务器个数改变引起的映射联系改变。

共同性Hash的优化

为了尽量完成各服务器的负载均衡,在上述基础上,将同一台服务器影兼顾成多个虚拟节点来到达负载均衡的意图。

公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币
公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币
公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币
公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币 公鸡图片,五张图了解共同性Hash原理,一英镑等于多少人民币
  • 最新留言