fengpeiyuan
Results
1
issues of
fengpeiyuan
不好意思,我用中文表达了啊,不同意见互相交流下。 问题描述:redis在集群工作时,一个从节点发现自己的主节点进入下线状态时将进行故障转移。故障转移即是发生故障主节点的所有从节点进行选主(Raft算法领头选举)。您是觉得对于部署在和主节点不同机房的从节点被选中后跨机房通信会对性能有影响,所以增加了datacenter-id这个配置项。 我的理解:我觉得这个问题只是一个使用过程中的具体问题,如果用数据中心/机房做配置项,再来一个需求:一个机房内部不同交换机/子网之间有没有必要再增加配置项(这个例子可能不恰当,毕竟机房内部延迟足够小),我的意思是redis作为一个软件产品需要抽象具体需求来给出解决方案,所以代码层面有数据中心(机房)类似的代码是有些狭义了 延伸:其实我觉得redis cluster对于用户来说最大的问题是运维问题,过于“自动化”,对人工干预不友好,这也是好多用户不敢用的原因。我觉得在所有从节点进行Raft算法选主前应该先判断一下有没有被人工干预指定为主节点的配置项(配置信息所有从节点信息是经过同步一致的),如果有配置信息,则此从节点单独参选主节点,所有从节点都没有则大家一起参选。 用途:1.解决跨机房节点被选主带来性能问题 2.人为干预,可以平移整个集群到另一个机房(实现集群的平移) 3.使得不同机房的从(备)节点更加有实际意义