集群中为什么需要选举: http://f.dataguru.cn/thread-575585-1-1.html
集群分类:
集群本身有很多种类:如tomcat集群,集群里每个服务都是对等的,所以其自身不存在leader之说。
另外一类,如fastDfs,其依赖独特的HASH算法,建立文件名和路径之间的映射关系,写操作都是通过namenode分发到各datanode上,算法保证了文件名的独一无二,也不存在leader的说法。
还有memcache集群,集群里的机器之间彼此无心跳,通过一致性hash尽可能将key值的存储分散化,降低单一memcahe服务器down机的影响。
还有一类是主从复制,主节点负责写,从节点负责读,提高读的性能,从节点定期通过心跳与主节点沟通,一旦主节点挂掉了,从节点马上接手主节点的任务,应该来讲,zookeeper集群是最接近这一种的。
主节点暂时失去响应,如瞬时负载过高,网络拥塞或者其他原因导致主节点暂时失去响应,超过响应超时时间,这个时候从节点启动,承担起leader的职责,但是原先的主节点又恢复了服务。这个时候,如果没有选举机制(不能仅仅自己宣告自己是leader,还要广而告之,让其他服务器或者客户端知道自己是leader),有可能会存在两个leader节点,导致集群发生混乱。
节点本身 无状态,快速失败(状态存到zookeeper或redis中 )
浙公网安备 33010602011771号