引言
在分布式系统中,对数据的准确定位以及整个系统的结构具有很高的要求。下现代分布式寻址算法中,主要以下面三种算法为代表:
- hash 算法(大量缓存重建)
- 一致性 hash 算法(自动缓存迁移)+ 虚拟节点(自动负载均衡)
- redis cluster 的 hash slot 算法(也叫hash槽)
hash算法比较适合固定分区或者分布式节点的集群架构。一致性hash算法比较适合需要动态扩容的分布式架构以及一些动态负载均衡的分布式中间件和RPC中间件。hash slot是Redis对hash算法的一种实现。
hash算法
将不同的请求hash后碰撞到数目固定的“hash桶”里。如有3个服务器,当不同请求过来时,通过hash碰撞指定到所对应的服务器处理该请求。
s h a r d = h a s h ( i p ) % ( N U M S _ H A N D L E R ) shard=hash(ip)\%( NUMS\_ HANDLER) shard=ha