网站的模板,备案ip 查询网站查询网站查询,免费玩游戏,广告联盟平台系统Zookeeper的集群搭建
1#xff09;zk集群中的角色
Zookeeper集群中的节点有三个角色#xff1a;
Leader#xff1a;处理集群的所有事务请求#xff0c;集群中只有一个LeaderFollwoer#xff1a;只能处理读请求#xff0c;参与Leader选举Observer#xff1a;只能处理读…Zookeeper的集群搭建
1zk集群中的角色
Zookeeper集群中的节点有三个角色
Leader处理集群的所有事务请求集群中只有一个LeaderFollwoer只能处理读请求参与Leader选举Observer只能处理读请求提升集群读的性能但不能参与Leader选举
2搭建zk集群
创建4个节点的myid并设值 在/usr/local/zookeeper中创建以下四个文件/usr/local/zookeeper/zkdata/zk1# echo 1 myid
/usr/local/zookeeper/zkdata/zk2# echo 2 myid
/usr/local/zookeeper/zkdata/zk3# echo 3 myid
/usr/local/zookeeper/zkdata/zk4# echo 4 myid编写四个zoo.cfg文件并修改zoox.cfg文件中的配置cp zoo.cfg zoox.cfg修改clientPortserver.idip:port:port 并设置其中一个为zookeeper服务端的角色为observer 启动4台zookeeper./bin/zkServer.sh start ../conf/zoox.cfg查看主从节点的状态./bin/zkServer.sh status ../conf/zoox.cfg注意这里我是先启动的zoo2.cfg因为一些原因zoo1.cfg启动失败了所以最后才启动的zoo1.cfg。连接Zookeeper集群./zkCli.sh -server 192.160.72.100:2181,192.160.72.100:2182,192.160.72.100:2183,192.160.72.100:2184ZAB协议
zookeeper作为非常重要的分布式协调组件需要进行集群部署集群中会以一主多从的形式进行部署。zookeeper为了保证数据的一致性使用了ZABZookeeper Atomic Broadcast协议这个协议解决了Zookeeper的崩溃恢复和主从数据同步的问题。
1ZAB协议的四种节点状态
Looking选举状态FollowingFollowing节点从节点所处的状态LeadingLeader节点主节点所处状态Observing观察者节点所处的状态
2Leader选举的过程 一般设置非Observer服务器的个数为奇数个。
3崩溃恢复时的Leader选举
Leader建立完后Leader周期性地不断向Follower发送心跳建立socket发送ping命令。当Leader崩溃后Follower发现socket通道已关闭于是Follower开始进入到Looking选举状态重新回到上一节中的Leader选举状态BIO此时集群不能对外提供服务。 类似于 Redis 中的哨兵机制 4主从服务器之间的数据同步
客户端想实现写操作但是连接的是从节点那么由从节点把数据发送给主节点由主节点负责数据的所有写操作读操作直接由当前连接节点处理。 两阶段提交
5Zookeeper中的NIO与BIO的应用
NIO 用于被客户端连接的2181端口使用的是NIO模式与客户端建立连接客户端开启Watch时也使用NIO等待Zookeeper服务器的回调 BIO 集群在选举时多个节点之间的投票通信端口使用BIO进行通信