一、副本节点选择(机架感知)
说明
第一个副本,因为我们的client
可能是web页
,也可能是shell终端
。
如果是web页
,则随机选取一个节点,如果是shell终端
,则选择当前shell终端
所在的节点。
节点距离最近,保证了性能。
第二个副本,选择机架2
的n0节点
,为了保证数据的可靠性
。
第三个副本,为什么不选择机架3
上的节点呢?
因为,第二个副本已经保证了可靠性,所以,第三副本,更注重性能
,所以,根据节点距离最近原则,选择机架2
的n1节点
。
二、两个节点间距离计算
1、什么是机架式服务器?
每个机架式服务器,独立配备一个交换机,机架里面,是一台台独立的服务器。
类似下图
2、节点距离计算
节点距离:两个节点到达最近的共同祖先节点的距离总和。
情况1:
集群中,任何一个节点,到自身的距离,是0
情况2
同一个机架上的服务器,共同的祖先节点,就是这台机架
n1到机架的距离为1,n2到机架的距离为1,所以,距离为2
依次类推,应该明白后面两个的计算逻辑了。
当然,不一定所有的集群节点分布都是上图这种树形结构。
例如下图
此时
节点5到节点9的距离就是3
节点10到节点2的距离就是3