zoukankan      html  css  js  c++  java
  • zooleeper面试题

      1.ZooKeeper文件系统
       Zookeeper提供一个多层级的节点命名空间(节点称为znode)。
      与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。

      为什么zookeper不能存储大数据(像mysql数据库那样)?

      内存上: Zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper不能用于存放大量的数据,每个节点的存放数据上限为1M

      查询上:mysql的底层数据结构是b+树,有很好的可拓展性,查询速度也是非常的快,而zookeeper用的普通的树,如果数量很大或者树的层次结构很复杂时候则查询效率很低。


      2.四种类型的znode

    • 1.持久化节点
    • 2.临时节点
    • 3.持久化顺序节点
    • 4.临时顺序节点

    3.Zookeeper通知机制
    ZooKeeper的watcher机制,当ZNode的发生节点删除添加的操作或者节点内容发生改变,子节点的操作等,监听的Client会收到通知,然后我们可以在程序中进行自己进行处理。


     4.命名服务 (路径查询)

    命名服务是指通过指定的名字来获取资源或者服务的地址,利用zk创建一个全局的路径,即是唯一的路径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或者一个远程的对象等等。

    也就是我们常说的注册中心,进行服务的发布与消费,通过ZooKeeper协议进行服务的注册,将地址作为内容放到临时结点上,然后消费者可以通过ZooKeeper暴露出来的地址访问指定的服务名称获得服务的地址,

    然后服务间进行通信即可,与注册中心就无关了,一旦地址发生修改,ZooKeeper也会通过Watcher机制通知消费方修改地址,而且集群环境下只需要添加多个地址,然后再消费方程序中进行负载均衡算法的实现即可;


     5.机器中为什么会有leader?

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


     6.zk节点宕机如何处理?

    Zookeeper本身也是集群,推荐配置不少于3个服务器。Zookeeper自身也要保证当一个节点宕机时,其他节点会继续提供服务。
    如果是一个Follower宕机,还有2台服务器提供访问,因为Zookeeper上的数据是有多个副本的,数据并不会丢失;
    如果是一个Leader宕机,Zookeeper会选举出新的Leader。
    ZK集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在ZK节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。


    7.zookeeper负载均衡和nginx负载均衡区别
        zookeeper

    • 不存在单点问题,zab机制保证单点故障可重新选举一个leader
    • 只负责服务的注册与发现,不负责转发,减少一次数据交换(消费方与服务方直接通信)
    • 需要自己实现相应的负载均衡算法

       nginx

    • 存在单点问题,单点负载高数据量大,需要通过KeepAlived+LVS备机实现高可用
    • 每次负载,都充当一次中间人转发角色,增加网络负载量(消费方与服务方间接通信)
    • 自带负载均衡算法

    8.zk集群保证的是强一致性,它跟rredis集群是不一样的。

    zookeper:当一个主节点收到数据之后,会自动与其他几个从节点进行进行数据的通信保证数据一致性,再返回给相应的请求端(客户端)。

    redis:当一个主节点收到数据之后,会从新开启一个线程与其他几个从节点进行进行数据的通信,进行数据同步。


  • 相关阅读:
    C++ Primer高速入门之六:数组和指针
    C++ Primer高速入门之六:数组和指针
    C++ Primer高速入门之六:数组和指针
    大学生毕业卖蔬菜,成就财富梦想
    美女毕业去养牛,创造自主牛肉品牌
    情侣合开夫妻店,爱情和努力让他们生活走向光明
    从3万元创业资金到年销售3亿元,看他是如何做到的?
    “海归”创办服装公司,全国竟拥有2000多家网点?
    90后卖地瓜,仅仅一个月就可以赚2万元
    老头创业弄养殖,每亩收入3万元,水蛭为啥这么值钱?
  • 原文地址:https://www.cnblogs.com/cb1186512739/p/12818445.html
Copyright © 2011-2022 走看看