
zookeeper
文章平均质量分 90
云哥Y
技术源于实践,技术改变世界!
展开
-
zookeeper的由来以及设计猜想
分布式所产生的一些问题假设一个集群下有三个服务:orderService1、orderService2、orderService3。 思考1:每个服务都有一个配置文件,配置文件里的信息动态变更了,如何保证各节点数据的一致性? 思考2:如何保证一个任务只在orderService1上执行呢? 思考3:如果orderService1服务挂掉了,其他的服务怎么知道它挂掉了,并且去接替它的任...原创 2018-07-23 21:43:53 · 784 阅读 · 0 评论 -
zookeeper原生API及Curator的使用
原生API节点特性/** * 监听事件:Watcher只会监听一次事件,如果需要一直监听,那么就要循环 */public class ZkDemo01 { public static void main(String[] args) { try { final CountDownLatch countDownLatch=new Coun...原创 2018-08-06 19:44:57 · 275 阅读 · 0 评论 -
zookeeper原生API实现分布式锁
原生API实现分布式锁原理 每个客户端都往zookeeper上创建一个临时有序节点,注册完后,取/locks下所有节点中最小的节点,则创建该最小节点的客户端拿到锁。如果当前最小节点是/lock_seq1,那么/lock_seq2边监听/lock_seq1边阻塞等待,当/lock_seq1被删除后,/lock_seq2节点的客户端获得锁,以此类推。代码public class ...原创 2018-08-10 21:08:45 · 271 阅读 · 0 评论 -
zookeeper 基本命令
服务命令启动服务: ./zkServer.sh start 或 sh zkServer.sh start查看服务状态: ./zkServer.sh status停止服务: ./zkServer.sh stop重启服务: ./zkServer.sh restart 或 sh zkServer.sh restart连接服务器: zkCli.sh -server 127.0.0.1:218...原创 2018-07-21 21:38:40 · 298 阅读 · 0 评论 -
zookeeper中的ZAB协议
ZAB协议用途ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议。在zookeeper中,主要依赖ZAB协议来实现分布式数据一致性,基于该协议,zookeeper实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。ZAB协议介绍ZAB协议包含两种基本模式,分别是: 1》崩溃恢复...原创 2018-07-26 20:37:20 · 13251 阅读 · 1 评论 -
zookeeper中的leader选举
服务器启动时的leader选举每个节点启动的时候状态都是LOOKING,处于观望状态,接下来就开始进行选举流程。 以3台机器组成的服务器集群为例,在集群初始化阶段,当有一台服务器Server1启动时,它本身是无法进行和完成Leader选举,当第二台服务器Server2启动时,这个时候两台机器可以相互通信,每台机器都试图找到Leader,于是进入Leader选举过程。选举过程如下: 1》每个...原创 2018-07-28 15:38:07 · 247 阅读 · 0 评论 -
Linux下安装zookeeper(单机和集群)
下载从官网直接下载zookeeper。 地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/安装单机1》解压zookeeper,我这里解压到/usr/java目录下。 命令:tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/java 2》进入zookeeper的conf目...原创 2018-07-19 20:59:37 · 292 阅读 · 0 评论 -
zookeeper的集群组成及角色介绍
集群角色Leader 角色 Leader 服务器是整个 zookeeper 集群的核心,主要的工作任务有两项: 1》事物请求的唯一调度和处理者,保证集群事物处理的顺序性。 2》集群内部各服务器的调度者。Follower 角色 Follower 角色的主要职责是: 1》处理客户端非事物请求、转发事物请求给 leader 服务器。 2》参与事物请求 Proposal 的投票(Lea...原创 2018-07-24 22:37:09 · 3111 阅读 · 0 评论 -
zookeeper的2PC事务提交
大致过程在 zookeeper 中,客户端会随机连接到 zookeeper 集群中的一个节点,如果是读请求,就直接从当前节点中读取数据,如果是写请求,那么请求会被转发给 leader 提交事务,然后 leader 会广播事务,只要有超过半数节点写入成功,那么写请求就会被提交(类似 2PC 事务)。 所有事务请求必须由一个全局唯一的服务器来协调处理,这个服务器就是 Leader 服务器,其他的...原创 2018-07-24 20:58:02 · 4047 阅读 · 0 评论 -
以zookeeper为注册中心实现RPC框架
原理图 大致思路:假设服务端是一个由10台机器构成的集群节点,每台机器在启动发布服务时,都会将各自的ip地址及端口号往zookeeper中注册。之后客户端会从zookeeper中拿到所有该服务注册的节点地址,并根据负载均衡算法,选取其中一个服务进行远程调用。核心代码-服务端注册中心/** * 1.zookeeper连接 * 2.注册服务 */public class Re...原创 2018-08-11 21:24:42 · 2747 阅读 · 2 评论