zookeeper系列之通信模型(转)】的更多相关文章

本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型. Zookeeper的通信架构 在Zookeeper整个系统中,有3中角色的服务,client.Follower.leader.其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择.而leader主要承担事务的协调,当然leader也可以承担接收客户请求的功能,为了方便描述,后面的描述都是client与…
本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型. Zookeeper的通信架构 在Zookeeper整个系统中,有3中角色的服务,client.Follower.leader.其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择.而leader主要承担事务的协调,当然leader也可以承担接收客户请求的功能,为了方便描述,后面的描述都是client与…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk ZooKeeper有三种安装模式:单机安装(standalone).伪集群模式.集群模式: standalone模式:只在一台机器上安装ZooKeeper,并只启动一个ZooKeeper实例. 伪集群:在一台机器上开启多个ZooKeeper实例来模拟集群.通过加载不同配置文件,分配不同数据目录来实现这种模式.因为在同一机器上运行,所以机器宕机,整个ZooKeep…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk 1.简介 ZooKeeper提供了一个非常简单的命令行客户端zkCli,它在ZooKeeper安装目录的bin目录下. [root@s1 zk]# ls /usr/local/zookeeper/bin/ zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh 先连接一个已经启动的ZooKeeper实例.例如: zkCli.sh -…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk 1.znode znode的官方说明:http://zookeeper.apache.org/doc/r3.4.12/zookeeperProgrammers.html#sc_zkDataModel_znodes ZooKeeper以一种类似于文件系统的树形数据结构实现名称空间.名称空间中的每个节点都是一个znode.znode和文件系统的路径不一样,在文件系统…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk zkServer.sh读取的默认配置文件是$ZOOKEEPER_HOME/conf/zoo.cfg.如果要用其它配置文件.如下传递配置文件参数: zkServer.sh start your_config zkServer.sh stop your_config zkServer.sh status your_config 配置文件的官方说明:http://zo…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk ZooKeeper有两种日志.一种快照.日志分为事务日志和ZooKeeper运行时的系统日志. 1.事务日志和快照 ZooKeeper集群中的每个服务器节点每次接收到写操作请求时,都会先将这次请求发送给leader,leader将这次写操作转换为带有状态的事务,然后leader会对这次写操作广播出去以便进行协调.当协调通过(大多数节点允许这次写)后,leader…
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk 1.ZooKeeper中的角色 在比较老的ZooKeeper版本中,只有两种角色:leader和follower.后来引入了一种新角色Observer,Observer角色除了不能投票(以及和投票相关的能力)外,其它和follower功能一样. 所以,在ZooKeeper中: 投票角色:leader.follower. 无票角色:observer. 2.ZooK…
一.服务器角色 1. Leader 1)事务请求的唯一调度者和处理者.保证事务处理的顺序性 事务请求:导致数据一致性的请求(数据发生改变).如删除一个节点.创建一个节点.设置节点数据,设置节点权限就是一个事物请求,全局的事物id(zxid)只能由leader来分配 2)集群内部个服务器之间的调度者 2. Follower 1)处理客户端的非事务请求.事务请求必须转发给Leader服务器. 非事物请求:读取数据2)参与事务请求Proposal(议案)的投票3)参与Leader选举 3. Obser…
一.Zookeeper实现分布式锁 分布式锁主要用于在分布式环境中保证数据的一致性. 包括跨进程.跨机器.跨网络导致共享资源不一致的问题. 1. 分布式锁的实现思路 说明: 这种实现会有一个缺点,即当有很多进程在等待锁的时候,在释放锁的时候会有很多进程就过来争夺锁,这种现象称为 “惊群效应” 2. 分布式锁优化后的实现思路 3. Zookeeper分布式锁的代码实现 准备工作: 1)安装Zookeeper,具体参考我前面的我文章Zookeeper系列一:Zookeeper介绍.Zookeeper…