集群收缩
2017-03-31 09:44:01 0 举报
集群收缩是一种在分布式系统中常用的技术,它的主要目的是优化资源使用,提高系统性能。当一个集群中的某个节点出现故障或者负载过高时,可以通过收缩集群的方式,将该节点的任务迁移到其他健康的节点上,从而保证整个系统的稳定运行。这个过程通常涉及到数据的重新分配、任务的迁移以及网络的配置等操作。集群收缩不仅可以提高系统的可用性,还可以有效地降低运维成本。然而,集群收缩也可能带来一些问题,比如数据一致性问题、任务迁移的性能问题等,因此在实际操作中需要谨慎对待。总的来说,集群收缩是一种强大的工具,可以帮助我们更好地管理和优化分布式系统。
作者其他创作
大纲/内容
否
数据同步
重新初始化 slot — node映射
data
是否成功
下线节点
主节点发送消息
监控
5 响应结果
槽数据迁移
使用集群配置启动
keys
如果命令发送次数超过5次未成功JedisClusterMaxRedirectionsException
(ping消息数据)节点自身数据1/10其他节点信息
物理机
执行命令
节点A
node4
yes
hash(key)%6
node3
client
普通模式启动
master
键计算hash
发送ping消息
迁移槽到其他节点
ping消息
计算有效下线报告数量
(选择发送节点) 每秒随机10次找出最久没有通信的节点 最后通信数据大于node-timeout/2
sentinel
返回结果
no
3 通信异常端口连接
客户端
2 回复ASK转向
目标节点
是否连接出错
每秒执行10次间隔1秒
node1计算hash
2 更新节点B组合的通信时间
slot 0
请求主节点
node6
slave
node5
接收ping消息
是
发送键命令
node4计算hash
云主机
集群模式启动
3 asking
hash(key)%3
JedisClusterkey — slot — node
sentinel集合
消息解析
开启集群模式?
node3计算hash
节点B
target
1 发送键命令
存在集群配置文件?
尝试客观下线
是否大于槽节点总数一半
包含其他pfail节点
slot 1
4 与节点B最后通信时间超过 cluster-node-timeout 标记 pfail状态
随机找出活跃节点
向集群广播下线节点的fail消息
启动
target6381
source6385
生成集群配置文件
CRC16(key)&16384
node1
维护故障链表
node2计算hash
该报告作废
扩容迁移约50%数据
通知其他节点忘记下线节点
随机节点
source
4 发送键命令
1 回复ping消息
node2
任意节点
node5计算hash
cron 定时任务
slot 2
下线报告是否在有效期
退出
关闭节点
计算槽对应的节点
请求数据
节点定时任务
是否指向自身
slot 3
是否持有槽
更新为客观下线状态
target6379
回复MOVED
tartget6380
0 条评论
回复 删除
下一页