zookeeper面试1-9

博客 分享
0 263
优雅殿下
优雅殿下 2022-04-08 21:57:44
悬赏:0 积分 收藏

zookeeper面试1-9

目录
  • 1.选举机制
  • 2.生产集群安装多少zookeeper合适?
  • 3.常用命令
  • 4.zookeeper是什么?
  • 5.zookeeper怎么保证主从节点的状态同步?
  • 6.集群中为什么要有主节点?
  • 7.集群中有3台服务器,其中一个节点宕机,这个时候zookeeper还可以使用吗?
  • 8.说一下zookeeper的通知机制?
  • 9.zookeeper分布式锁

1.选举机制

SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻, 集群中的每台机器的ZXID值不一定完全一样Epoch:每个Leader任期的代号。没有Leader时同一轮投票过程中的逻辑时钟值是半数机制,超过半数的投票通过,即通过。第一次启动选举规则:投票过半数时,服务器 myid 大的胜出当leader第二次启动选举规则:①EPOCH大的直接胜出 ②EPOCH相同,事务id大的胜出 ③事务id相同,任期代号id大的胜出

2.生产集群安装多少zookeeper合适?

安装奇数台。生产经验:10 台服务器:3 台 zk;20 台服务器:5 台 zk;100 台服务器:11 台 zk;200 台服务器:11 台 zk服务器台数多:好处,提高可靠性;坏处:提高通信延时

3.常用命令

ls、get、create、delete

4.zookeeper是什么?

zookeeper是一个分布式的协调服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

5.zookeeper怎么保证主从节点的状态同步?

zookeeper的核心是原子广播,相当于一个大的事务,要么都成功,要么都失败。

6.集群中为什么要有主节点?

在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,所以就需要主节点。

7.集群中有3台服务器,其中一个节点宕机,这个时候zookeeper还可以使用吗?

可以继续使用,单数服务器半数以上正常就可以正常使用

8.说一下zookeeper的通知机制?

客户端端会对某个znode建立一个watcher事件,当该znode发生变化时,这些客户端会收到zookeeper的通知,然后客户端可以根据znode变化来做出业务上的改变。

9.zookeeper分布式锁

加锁进行资源保护go-zookeeper 添加分布式锁的方法为NewLock(c *Conn, path string, acl []ACL)。锁的结构体为:type Lock struct {	c        *Conn	path     string	acl      []ACL	lockPath string	seq      int}这个结构体实现了三个方法:Lock(),LockWithData(data []byte)和Unlock()lock := zk.NewLock(conn, "/root/lock", zk.WorldACL(zk.PermAll)) //加锁time.Sleep(time.Second*1) // 1 秒后释放锁lock.Unlock()  //解锁
posted @ 2022-04-08 20:56 Jeff的技术栈 阅读(13) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员