摘要: 1)在父工程中添加zookeeper的相关依赖 2)创建ZookeeperConfig.java类,将zkCli注入容器 3)创建WatcherApi实现watcher,重写process方法: 阅读全文
posted @ 2020-01-06 13:12 不缺重头再来的勇气 阅读(2907) 评论(0) 推荐(0) 编辑
摘要: 1 基础知识 1 Zookeeper概述 Zookeeper是一个为分布式应用提供一致性服务的中间件。它可以用于维护配置信息,命名,提供分布式同步和服务治理功能。 Zookeeper包括客户端和服务器两部分,服务器(服务器集群)负责提供服务,客户端通过连接服务器进行增删改查,监视等相关操作。 1.2 阅读全文
posted @ 2020-01-06 13:10 不缺重头再来的勇气 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1)引入相关依赖 2)创建DistributedLock.java类 因为该类需要实现分布式锁的功能,因此需要实现 Lock 和 Watcher 接口并重写其抽象方法 因为分布式锁原理比较复杂,这里再次引入其原理图: 3)创建测试类进行测试 4)代码测试的结果如下: 启动应用,10个线程分别初始化完 阅读全文
posted @ 2020-01-06 13:09 不缺重头再来的勇气 阅读(285) 评论(0) 推荐(0) 编辑
摘要: zookeeper使用的默认选主算法是FastLeaderElection,可解决LeaderElection选举算法收敛速度慢的问题。 ZAB协议规定的状态: LOOKING 当前集群没有leader,准备选举 FOLLOWING 已经存在leader,当前服务器为跟随者 LEADING 唯一的领 阅读全文
posted @ 2020-01-06 13:07 不缺重头再来的勇气 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1) 什么是ZAB协议? 2) 须知: 3) ZAB协议工作模式-消息广播 1 消息广播模式: Zookeeper集群必须选举出一个Leader进程用来维护一个Follower可用的客户端列表。将来这些Follower节点可以和客户端进行通信。 ​ 2 读请求请求细节: Zookeeper客户端会随 阅读全文
posted @ 2020-01-06 13:06 不缺重头再来的勇气 阅读(138) 评论(0) 推荐(0) 编辑