美文网首页
Zookeeper应用场景

Zookeeper应用场景

作者: bernierayxu | 来源:发表于2019-05-03 16:01 被阅读0次
1. zookeeper有哪些应用场景?
  • 数据发布订阅(配置中心),需要提供地方获取数据,同时如果数据更新了,还需要收到通知。


    配置中心
  • 命名服务,即当某个服务还没有开发完毕的时候,就可以对其进行命名,其他需要调用该服务的开发也不会受到影响。


    命名服务
  • master选举,当master节点挂了,需要重新选举,可以使用zookeeper(或者其他工具也可以);有两种方式可以选举master:1)通过在zokeeper上面争抢创建master这个临时节点,谁创建成功了谁就是master;2)通过维护servers这个节点的信息,把所有服务器信息保存到这里,创建顺序临时节点,选取最小的节点用来当作master节点。需要单独创建一个守护进程来一直进行选举。


    master选举
  • 集群管理,实时动态检测集群的加入和离开(需要操作)


    集群管理
  • 分布式队列,直接使用zookeeper就可以实现无界的分布式队列,如果要实现有界的分布式队列,则需要用到分布式锁;每个生产者放上去数据的时候需要先获取锁,判断一下是否超了,然后再进行放数据。注意,此时的数据节点不能是临时节点。


    分布式队列
  • 分布式锁,第一种方式适用于并发量小的时候,因为产生惊群效应;第二种方式适用于并发量大的时候,只需要watch前一个子节点的状态,这样唤醒的进程就只会有一个。


    分布式锁第一种方式
    分布式锁第二种方式
2. zookeeper如何搭建集群?
zookeeper集群
  • initLimit代表加入一个新的节点的时候,如果该节点不能在规定的initLimit完成数据复制,则会被移除;在选举leader的时候也会有该限制,即选举的新leader如果离所有的节点太远,在initLimit时间内无法完成数据复制,则会重新选举。
  • syncLimit是指非leader节点会向leader节点发起请求,leader节点需要在syncLimit时间内回复。


    zookeeper配置集群
    myid文件
  • zookeeper需要2G内存,对于磁盘不需要很多要求。


    连接zookeeper
3. 如何保证集群数据的一致性?
  • 读取数据可以去任意从节点zookeeper读取
  • 但是如果是写入数据,则需要通过leader节点来进行。


    ZAB协议
  • ZAB保证最终一致性,即各个机器更新速度有快有慢,但是通过单调递增事务ID,保证有序性,最终能够读取一致的效果。


    最终一致性
4. leader崩溃的情况下,如何进行下一次选举?

答:leader崩溃的情况下,该集群暂时无法使用,需要进行下一次选举。下一次选举的时候,只要leader尚未commit出去的事务都会被忽略,只有已经被commit的事务才会计入计算。选出新的leader之后,会进行数据同步,当半数的节点(包括leader自己)都已经恢复使用之后,则可以开始对外提供服务。


崩溃
选举
数据同步
丢弃上一个leader的事务问题
5. 选举算法有哪些?
  • 因为竞选比较耗时间,所以可以设置某些节点为observing的状态,只让limited number节点来参与竞选。
  • 如果只有三台机器进行选举,三台依次启动,此时一定是第二台当leader。


    选举算法
    竞选节点
    竞选规则
    竞选例子
6. zookeeper保证了CAP的哪些特性?
  • C,一致性,保证了
  • A,可用性,在重新分配leader的时候无法可用,牺牲了可用性
  • P,分区冗余性,保证了

相关文章

  • ZooKeeper应用场景及方案介绍

    本文主要从应用的角度对ZooKeeper做了浅析,试图阐明ZooKeeper是什么、主要应用场景有哪些、常用场景可...

  • Zookeeper面试题锦集

    1、zookeeper是什么框架?zookeeper是一个开源的分布式协调服务框架。 2、有哪些应用场景?应用场景...

  • ZooKeeper高级特性

    1. ZooKeeper应用场景 ZooKeeper的应用场景主要包括:分布式协调,分布式锁,分布式元数据存储以及...

  • 深入了解Zookeeper核心原理

    之前的文章[Zookeeper基础原理&应用场景详解]中将Zookeeper的基本原理及其应用场景做了一个详细的介...

  • Zookeeper 应用场景

    1.统一命名服务2.状态同步服务3.集群管理4.队列管理 1、跨进程共享锁 2、分布式应用配置项系统 3、Lead...

  • zookeeper 应用场景

    Zab 是zookeeper的保证原子性的广播协议。用来传播leader产生的状态改变。http://www.cn...

  • ZooKeeper应用场景

    随着互联网系统规模的不断扩大,大数据时代飞速到来,越来越多的分布式系统将ZooKeeper作为核心组件使用。接下来...

  • Zookeeper应用场景

    一、master选举 多个服务采用争抢注册临时节点,如果注册成功那么就是master。每个服务还要注册自己的服务信...

  • Zookeeper应用场景

    1. zookeeper有哪些应用场景? 数据发布订阅(配置中心),需要提供地方获取数据,同时如果数据更新了,还需...

  • ZooKeeper - 应用场景

    数据发布/订阅 数据发布/订阅的一个常见的场景是配置中心,发布者把数据发布到 ZooKeeper 的一个或一系列的...

网友评论

      本文标题:Zookeeper应用场景

      本文链接:https://www.haomeiwen.com/subject/ribvnqtx.html