Zookeeper简介:
官网地址:http://zookeeper.apache.org/doc/current/zookeeperOver.html
ZooKeeper(后面称为zk)是一种用于分布式应用程序的分布式开源协调服务。主要是用来解决分布式应用中经常遇到的一些问题,假如你公司的项目还是处于单机状态,那可能用不到zk,一旦涉及到分布式应用,很多问题都可以利用zk解决。
ZooKeeper集群模型
在多台机器上部署ZooKeeper后,通过ip互通,在初次启动的时候,ZooKeeper多台机器会进行选举,选举产生一台作为Leader,其余的全部是Follower。
一、ZooKeeper中的服务器角色
1、Leader服务器:
1.Leader服务器是zk集群工作机制的核心.
2.Leader服务器通过ZooKeeper内部算法通过投票选举产生,当某台机器投票数过半时,即产生Leader服务器;
3.事务请求的唯一调度者和处理者,保证集群事务请求处理的顺序性.
对所有的事务性请求做全局可控制,当有增删改的请求到达Follower服务器时,Follower服务器不会进行任何操作,而是将请求通知到Leader服务器,通过Leader服务器对相应的操作进行处理,处理结束之后广播所有变化消息到Follower服务器,及时更新数据;
4.当Leader服务器宕机的时候,选举重新进行,在剩下所有的Follower服务器中重新选举产生出一台新的Leader服务器。
2、Follower服务器
1.Follower服务器是zk集群状态的跟随者.
2.Follower服务器只处理非事务性请求(读请求),事务性请求转发给Leader服务器处理;
3.参与事务请求的proposal投票
3.参与Leader选举投票
3、Observer观察者
Observer是一种新型的zk节点,Observer服务器只提供非事务服务.通常用于不影响集群事务处理能力的前提下提升集群的非事务的处理能力,Observer有另外一个优势