当前位置: 代码迷 >> 综合 >> zookeeper live(一)zk简单介绍
  详细解决方案

zookeeper live(一)zk简单介绍

热度:58   发布时间:2023-12-13 01:01:13.0

zookeeper live(一)zk简单介绍

  1. 在单个机器开发的时候,直接把配置文件放到本机上就行,但在分布式开发过程中,最原始的过程中,每个节点维护有一份配置信息,每个应用去访问不同的节点,这有个弊端,比如改了配置一的配置信息,配置二三需要一致性维护,这比较麻烦

  2. 将配置文件放到一个节点上,如果这个节点宕机,则全挂了。

  3. 所以,将配置文件放到集群当中,在集群中放几个节点,每个节点放同样的配置文件,即使里边有一个节点宕机了,则还有别的节点提供。

  4. 利用监听机制,只要修改一个配置文件,则会同步到其他配置文件。在zk只要有一半以上同步成功,则认为是已经同步成功。

  5. zk更适用于以查询为主的场景。

  6. 因为zookeeper是一个集群,支持横向可拓展性,zk里只有一个leader,处理事务请求,其他的follower只能提供非事务请求。如果事务操作比较频繁的情况下,横向拓展则没什么意义;如果事务操作不频繁,则可以横向拓展。

  7. 客户端在选择哪一个集群节点去访问呢?它会选择随机访问或者轮询访问,如果是发送的非事务请求,则follower会直接返回它的请求,如果是事务的请求,会先请求leader再返回给它。

  8. zookeeper每个节点只能存储很少量的数据。

  9. zookeeper是以树形结构管理节点的,每个节点叫做znode,可以在每个znode下面创建子节点

  10. znode的类型,临时节点(一宕机就消失,后边不能创建子节点;与客户端对话结束,zookeeper会将临时节点删除),持久节点(只有客户端手动删除才会消失),顺序节点

  11. zookeeper角色:

    1. leader:选举选出来的

    2. learner

      1. follower:选leader,参与事务请求和非事务请求。

      2. observer:单纯为客户端提供非事务请求,不参与leader选举,提高zk集群读性能

  12. zookeeper读写机制

    1. zookeeper是多个server组成的集群

    2. 由一个leader和多个follower组成

    3. 每个server保存一份数据副本

    4. 全局数据一致

    5. 更新请求转发,即使事务请求转发到了follower,它也会转发给leader执行。

  13. zookeeper:保证

    1. 首先每个节点server里会维护队列,存放着server收到的请求,先进先出的顺序去执行请求。

    2. 数据的原子性,一次数据更新,要么成功,要么失败

    3. 实时性,一定事件范围内,client能读到最新数据

  14. zookeeper:watcher监听机制

    1. watcher是zookeeper的一个核心功能,可以监听目录节点和子节点的数据变化,一旦节点发生变化

  相关解决方案