zookeeper集群
zookeeper部署奇数节点的原因(最少3个)
1.zookeeper集群的写操作,由leader节点负责,它会把通知所有节进行写入操作,只有收到半数以上节点的成功反馈,才算成功。如果是部署2个节点的话,那就必须都成功。
2.zookeeper的选举策略也是需要半数以上的节点同意才能当选leader,如果是偶数节点可能导致票数相同的情况
3.只有当半数以上的节点存活时 zookeeper集群才能对外服务,维持正常状态,如果是2个节点,只要其中一个挂掉,那么剩下的1个并不满足半数以上规则。
原文链接:https://blog.youkuaiyun.com/zhenglichenboy/article/details/79925595
solr集群
搭建SolrCloud需要的机器数:
SolrCloud集群实际包括zookeeper和solr两个集群。
对于zookeeper集群,根据奇数原则和过半原则,2n+1,n取最小值:21+1=3,所以最少就是3个机子。
对于SolrCloud,由于是分片机制+备份机制,如有1个分片,那至少需要1个备份,就是2台,这做到了高可用,但对于索引的大小变化,如索引越来越大一台机子装不下时,需要水平扩展。如有2个分片,每个分片至少一个备份,就是需要4台机子。所以solr的数目在不分片时,至少是2台。如果分片,至少是4台。网上好多搭建环境时用3台,这如何分片?分2片,那其中1片就没有备份,分1片,只多出了一个副本,用处不大。到这里,你可能会不同意,你会想到zookeeper的集群3台就可以。这是由于zookeeper的选举leader算法是zab协议,过半原则,而solr的leader选择是利用了zookeeper的临时节点特性,简单理解就是:solr主节点挂掉时,剩余从节点(也就是副本节点)会感知到这个事件,然后去创建zk的临时节点,谁先创建成功谁就成为主节点。
综上所述,如果不分片,至少需要3台zk+2台solr=5台(做到了高可用)。如果分片,至少需要3台zk+4台solr=7台(做到了分布式和高可用)。
原文链接:https://blog.youkuaiyun.com/chuixue24/article/details/79431695
redis集群
redis最少节点数:
Redis集群至少需要3个master节点,所以现在总共有6个节点,就只能是1master对应1slave这种方式。
所以:
1master-1slave,redis集群需要6个节点
1master-2slave,redis集群需要9个节点,以此类推。