负载均衡之一致性哈希算法详解
传统的哈希是直接把数据映射到对应的hash表上,但是当我们的数据量很大的时候,我们会采用多个hash节点来存储的方式来减少存储压力。
但是这种hash算法下,如果我们的节点发生了增加或减少的时候,我们就需要将所有数据,重新建立映射关系,这会导致大量的数据迁移和重新映射的问题。
而一致性hash算法就可以优化这些问题。
首先,一致性hash算法是将所有的数据全部映射到一个大小为0-2的32次方-1的环中(hash环存储)
然后,我们可以将我们服务的地址,映射到这个环上。
此时,当我们的数据来了以后,我们还是先将key通过hash计算放到我们的环上,然后我们看key沿顺时针遇到的第一个节点,我们就将其放入该节点。
节点如果宕机了,可以zookeeper可以利用心服务器托管网跳检测功能,判断服务是否断开,从而移除相关节点,在zookeeper中移除后,我们需要在我们的hash环中也移除节点,假设我们移除了节点1,那么此时,我们只需要对一个数据进行重新映射即可。
同理添加节点也很方便,我们可以在node3和node1之间新增一个节点4,这样只会影响node3和node1这个区间的数据。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: PostMan如何联调SignalR WebSockets
我们在调试SignalR的时候,往往要写多一个客户端对接联调。其实,在过去的几个版本中,Postman 已经能够使用 WebSocket 连接连接到 SignalR 中心并发送和接收消息。 设置请求 先观察浏览器是如何发送请求 在PostMan模拟请求 建立链…