Zookeeper 集群
特点
- 顺序一致性(按顺序执行命令)
 - 原子性(要么都成功,要么都失败)
 - 可靠性(在一个服务器上修改了,其他服务器也修改了)
 - 实时性(有一定的延迟)
 - 角色轮换避免单点故障
 
角色
通过 stat 命令可以查看服务器角色。
- Leader:集群工作机制中的核心
- 任务的调度:集群内部个服务器的调度者(管理 follower,数据同步)
 - 事务:事务请求的唯一调度和处理者,保证集群事务处理的顺序性
 
 - Follower:集群工作机制中的跟随者
- 处理非事务请求,转发事务请求给 Leader
 - 参与事务请求 proposal 投票
 - 参与 Leader 选举投票
 
 - Observer:观察者
- 处理非事务请求,转发事务请求给Leader
 - 提高集群非事务处理能力
 
 
Observer 与 Follower 的区别:有读请求,但不做任何投票处理。
配置
zoo.cfg
集群机器的 zoo.cfg 文件是一致的。
clientPort=2181
initLimit=5
syncLimit=2
peerType=observer
server.ID1=IP1:2888:3888
server.ID2=IP2:2888:3888
server.ID3=IP3:nnnn:mmmm:observer
- IDn: server id,集群中机器序号
 - IPn: 机器ip地址
 - nnnn: 同步端口
 - mmmm: 选举端口
 - observer: 是否为观察者
 
myid
在 data 目录下,创建一个名为 myid 的文件,在该文件的第一行写上一个数字,和 zoo.cfg 中当前机器的编号(IDn)对应上。
绝大多数服务器启动了(zkServer.sh start)之后,集群才能启动(zkServer.sh status)。
Java 客户端连接集群
ZkClient client = new ZkClient("host1,host2,host3,host4,host5");
Zk客户端处理过程:解析→打散→形成环形地址列表队列

                    
                
                
            
        
浙公网安备 33010602011771号