集群架构总结(Kafka、redis,zk,es)

ZK集群

1.zk集群节点可见

通过配置文件达到节点间相互可见

2.为什么集群设置奇数个节点

1.奇数节省资源:zk容错,zk节点剩下的个数必须要大于挂掉的节点(大于n/2),整个集群才可用。5节点容错2个,6节点容错2个

2.奇数节点集群可用性更高,2n,2n+1容错都是n-1,奇数个挂掉n-1个节点的概率小一点

3.可用性高,网络通信导致失联,裂出的节点使集群可用的概率更高,5节点失联3节点,失联的3节点可以选出leader集群可用,6节点失联3节点,两个集群都不可用

3.集群只有一个leader

如果节点挂了,且剩余节点在配置文件所有节点中的个数还是过半的,就会进行重新选举leader

Kafka集群

1.Kafka集群节点可见

依赖zk集群实现节点间相互可见,Kafka集群节点通过zk维护,Kafka的topic的offset由Kafka自己内部生成一个特定的topic维护

2.集群节点不要求奇数或者偶数,看资源设置---->Kafka的精髓在于其分区特性

3.集群只有一个controller

如果节点挂了,zk会帮助Kafka重新选举controller

ES集群

1.ES集群节点可见

2.角色分离,master候选节点n个,discovery.zen.minimum_master_nodes: n/2 + 1

达到minimum_master_nodes节点认为master挂了才开始选举

并且集群节点数大于等于minimum_master_nodes,才能进行选举主节点(防止脑裂)

数据节点---不参与选举---指定主节点

3.集群只有一个master,可以设置多个master候选节点用来做高可用---选举

redis集群

1.redis集群节点可见

2.不要求整个候选主节点的个数为奇数个,最多为16384个节点(16384个hash槽)

3.集群只有一个master

原创文章 75 获赞 28 访问量 13万+

猜你喜欢

转载自blog.csdn.net/qq_33999844/article/details/105723477
今日推荐