zoukankan      html  css  js  c++  java
  • 面试简单整理之zookeeper

    157.zookeeper 是什么?

     ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。
    分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协
    调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。
    View Code

    158.zookeeper 都有哪些功能?

    1.配置中心
    2.命名服务
    3.Master选举
    4.分布式锁 -------------------redis锁、数据库锁
    5.服务注册与推送
    View Code

    159.zookeeper 有几种部署模式?

      单机模式,集群模式,伪集群模式

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

    Zookeeper的核心是原子广播机制,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式和广播模式。
    (1) 恢复模式
    当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。
    (2) 广播模式
    一旦Leader已经和多数的Follower进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个Server加入ZooKeeper服务中,它会在恢复模式下启动,发现Leader,并和Leader进行状态同步。待到同步结束,它也参与消息广播。ZooKeeper服务一直维持在Broadcast状态,直到Leader崩溃了或者Leader失去了大部分的Followers支持。
    View Code

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

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

    163.zookeeper 的通知机制? 

       客户端在向 ZooKeeper 服务器注册 Watcher 的同时,会将 Watcher 对象存储在客户端的 WatchManager 中。当ZooKeeper 服务器触发 Watcher 事件后,会向客户端发送通知,客户端线程从 WatchManager 的实现类中取出对应的 Watcher 对象来执行回调逻辑。

    164.dubbo使用zookeeper做注册中心,注册中心集群全都挂掉,发布者和订阅者之间还能通信么?

        可以。消费者启动时会从zk拉取注册的生产者列表存在本地,调用时使用本地存储的地址进行调用。但是无法获取最新的服务列表。

  • 相关阅读:
    Köln-keith jarrett
    关于写博客,看博客
    django中使用celery
    django邮箱验证模块
    django验证码模块使用
    auth模块
    djangoORM语句
    django的from组件
    django分页
    django基本数据类型
  • 原文地址:https://www.cnblogs.com/nzxj/p/10470412.html
Copyright © 2011-2022 走看看