今天来聊聊,什么是主备,什么是集群,什么是节点
- 主备
主备多用来数据库场景,比如:mysql主备,redis主备等等。包含数据的,状态的才能叫主备。无状态的应用服务器的话,就没有主备概念了。主备的目标是保证高可用,不保证高并发。比如:一个主服务,只能支持1000个并发。搞个一主一备,或者一主两备,它的并发能力还是1000个。但是,有了主备它的可用性就大大提高了。当然,你也可以说一个master,100个salve。但是这还是一个主备系统,而不是集群系统。集群系统,应该是每个节点都平等的。像zookeeper这种,会选主,其他节点都是salve节点,我个人觉得,zookeeper也仅仅是一个主备系统,其只能提供高可用,并不能提供高并发和高容量。Raft也一样。就算最好的分布式一致性Paxos算法,它也没有单台机器一致性强。
目标:高可用,满足CAP中A
缺点:既然主备了,那么数据一致性就没只有一台主强了。所以,牺牲了一致性C。
-
节点
节点可以说是一个虚拟的概念,在主备概念上,一个完成的主备整体属于一个节点。在集群概念上,集群一个节点也叫节点, -
集群
集群多用来无状态服务场景。比如:应用服务器。集群的目标是保证高并发,集群的每个节点都可以用来处理数据,提高并发能力。还有种场景,增加容量,比如:增加单机内存容量的限制,增加单机磁盘容量的限制。
目标:高并发,高容量。好像CAP中满足P,而满足了P,就会满足A,进而排斥C。和主备一样。满足AP,不满足C。
缺点:暂时没想到
ps:
- 对于数据库系统来说,可能既需要主备保证高可用,又需要集群增加数据库容量(分库分表)。
- 对于分布式存储系统来说,容量和高可用,都是不可或缺的。它的实现是,集群用来增加磁盘容量,但是高可用不是通过主备,而是通过块备份。一份数据写入后,会分散备份到多块数据到不同集群节点中。整个逻辑文件,由master node管理。该管理节点又是一个主备系统。
网友评论