3-Zookeeper使用场景
2021-06-13 21:32:00 0 举报
AI智能生成
Zookooper使用场景
作者其他创作
大纲/内容
Zookooper集群、使用场景
集群模式
三种节点
Leader:处理所有写请求,可以读请求,只有一个
Follower:只处理读请求,宕机参与选举
looking状态:Leader宕机,Follower节点变为Look参与选举
Observer:只处理读请求
leader选举
选票格式(优先比较zxid)
vote(myid,zxid);myid为Follower节点序号(配置文件中),zxid为最大事务id
两种选举模式(假设5台机器:server1、2、3、4、5)
启动选举(myid)
1、myid = 1服务启动,给自己投一票;其他服务未启动,处于looking选举状态
2、myid= 2服务启动,给自己投一票;比较myid=1;myid=2胜出
3、myid =3 服务启动,比较myid=2;myid =3 胜出,此时过半,myid=3成为leader
4、myid = 4或5,直接成为follower
宕机选举(zxid)
1、server3宕机;剩余server1:zxid = 100 、server2:zxid = 110、server4:zxid =120、server5:zxid=130
2、server1,2,4,5,依次比较zxid;当server4胜出,此时过半,成为leader
3、server5直接成为flowwer
选举多层队列架构
分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列,但 是按发送的机器分了队列,避免给每台机器发送消息时相互影响,避免某台机器如果出问题发送不成功则不会影响对正常机器的消息发 送。
使用场景
1、分布式锁
非公平锁
羊群效应(并发高、效率低):所有连接监听同一节点,当有节点删除,这时所有连接再次并发竞争
公平锁
原理
1、请求进来,直接在/lock下创建一个临时顺序节点
2、判断是否节点中的最小顺序节点
是:获取锁
否:对前一个节点监听
3、获取锁,处理业务;释放锁,delete节点;后续节点监听到,重复2步骤
读写锁(共享锁)
1、请求进来,直接在/lock下创建一个临时顺序节点;读读不加锁
2、所有的读请求,监听最近的写请求;等待写请求,写完在读
3、所有的写请求,监听上一个请求(读、写)请求,等该请求执行完;再进行写
2、分布式注册中心
3、分布式配置中心
4、分布式队列
5、集群选举
6、分布式屏障
7、发布、订阅
0 条评论
回复 删除
下一页