集群分配算法
⑴ Redis - 集群Hash槽分配
常见的Redis集群架构是三主三从的结构,为了保证数据分片,redis采用了Hash槽的概念,即:
常见的三主三从结构,将solt平均分到三个节点上
如果存入一个值,按照redis cluster哈希槽的 算法 : CRC16('key')384 = 6782。 那么就会把这个key 的存储分配到 B 上了。同样,当我连接(A,B,C)任何一个节点想获取'key'这个key时,也会这样的算法,然后内部跳转到B节点上获取数据
新增一个节点D,redis cluster的这种做法是从各个节点的前面各拿取一部分slot到D上,会变成这样:
同样删除一个节点也是类似,移动完成后就可以删除这个节点了。
Redis的Hash槽分配不是 一致性Hash ,一致性Hash是成一个hash环,当节点加入或者失效的时候,在环上顺时针找到对应节点。而Redis集群属于手动分配 线性Hash槽 ,需要手动指定,并且尽量做到各个节点solt平均分配。
而至于为什么Redis没有采用一致性Hash,因为如果一个节点失效,把数据转移到下一个节点,容易造成缓存雪崩,而采用hash槽+副本节点失效的时候从节点自动接替,不易造成雪崩。
⑵ 服务器集群的负载均衡算法有哪些
轮转(Round-Robin)算法
加权轮转(Weighted Round Robin)算法
最小连接数(Least Connections)算法
加权最小连接数(Weighted Least Connections)算法
目的地址哈希散列(Destination Hashing Scheling)算法
源地址哈希散列(Source Hashing Scheling)算法
随机(Random)算法
⑶ 简述负载均衡集群中常见的调度算法及原理(5种以上)
1.LVS负载均衡集群介绍
2. LVS介绍
3. IPVS发展史
4.LVS体系结构与工作原理简单描述
5.LVS的基本工作过程
6.LVS的三种工作模式:
6.1NAT模式-网络地址转换
6.2TUN模式
6.3DR模式(直接路由模式)
⑷ 在Hadoop集群中,任务分配到每个节点上的传统方法是什么,怎么实现随机分配,均衡分配........
默认方法是随机加均衡,几条策略,
一般都会把任务分配给离存储节点之一最近的节点
如果某个节点运算效率过慢就会把这个运算给另一个空闲节点同时做,谁先做完用谁的
如果某段计算实在做不过去,说明程序有问题,会跳过出问题的步骤,做下一步