美文网首页程序员
深入讲解,分布式中间件Zookeeper

深入讲解,分布式中间件Zookeeper

作者: 勤奋的码农 | 来源:发表于2019-08-13 21:59 被阅读5次
image

1、Zookeeper简介

Zookeeper是一个高性能的分布式一致系统,在分布式系统中有着广泛的应用。基于它,可以实现分布式同步、配置管理、命名空间管理等众多功能,是分布式系统中常见的基础系统。

Zookeeper主要用来解决分布式集群中应用系统的一致性问题,它有着树状结构的节点,每个节点均可存储少量的数据。同时,用户可以修改和订阅节点中的内容。分布式系统中的节点通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。

从设计模式角度来看,Zookeeper是基于观察者模式实现的。可以把它作为一个信息的中心。使用该服务的生产者和消费者都以Zookeeper中的数据为基准。即:

  • 生产者可以改变Zookeeper的节点,或者节点上的数据
  • 消费者通过订阅Zookeeper节点,从而能够在节点变动时收到通知

基于这样的机制,将Zookeeper作为信息中心,便可以实现分布式系统中节点状态的最终一致性。

2、特点

Zookeeper具有以下特点:

  • 最终一致性:客户端不论连接到哪个Zookeeper的哪一个节点,都会收到同一份状态。这是zookeeper最重要的性能。
  • 可靠性:Zookeeper集群具有简单、健壮、良好的性能,如果消息m被到一台server接受,那么它将被所有的server接受。
  • 实时性:Zookeeper保证client将在一个时间间隔范围内获得server的更新信息,或者server失效的信息。但由于网络延时等原因,Zookeeper不能保证两个client能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
  • 等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
  • 原子性:更新只能成功或者失败,没有中间状态。
  • 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台server上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

3、zookeeper应用场景

  • 数据发布与订阅:应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个watcher,每次配置更新都会通知到应用。
  • 名空间服务:分布式命名服务,创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用。
  • 分布式通知/协调:不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收到通知。
  • 分布式锁:Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁。
  • 集群管理:每个加入集群的机器都创建一个节点,写入自己的状态。监控父节点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点的用户同样会收到通知。如图:
image
  • 配置管理:在分布式应用环境中很常见,例如同一个应用系统需要多台节点运行,但是它们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这个应用系统的 PC Server,这样非常麻烦而且容易出错。像这样的配置信息完全可以交给 Zookeeper 来管理,将配置信息保存在 Zookeeper 的某个目录节点中,然后将所有需要修改的应用机器监控配置信息的状态,一旦配置信息发生变化,每台应用机器就会收到 Zookeeper 的通知,然后从 Zookeeper 获取新的配置信息应用到系统中。如图:
image

相关文章

  • 深入讲解,分布式中间件Zookeeper

    1、Zookeeper简介 Zookeeper是一个高性能的分布式一致系统,在分布式系统中有着广泛的应用。基于它,...

  • 什么是 zookeeper?

    什么 1 zookeeper 与分布式系统 zookeeper 是一个中间件,为分布式系统提供协调(Coordin...

  • springmvc + mybatis + ehcache +

    分布式 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式消息中间件:KafKa+Fl...

  • Zookeeper实现的分布式锁

    Zookeeper实现的分布式锁 zookeeper是一个分布式协调中间件,既可以用来做分布式的id还可以用来做配...

  • 分布式协调服务中间件zookeeper,集群安装和配置

    概述 Zookeeper是一个分布式协调服务中间件,提供的功能包括:配置维护、名字服务、分布式同步、组服务、分布式...

  • 中间件

    中间件 KafkaKafka 是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它...

  • 分布式锁

    分布式锁分类 mysql,redis等类cas自旋式分布式锁,应用程序询问中间件能否加锁zookeeper,etc...

  • kafka

    kafka 是一个分布式消息中间件,支持多分区,多副本,多订阅者的,基于zookeeper协调的分布式消息系统特点...

  • ZooKeeper集群脑裂问题处理,值得收藏!

    本文重点讲解ZooKeeper脑裂问题的处理办法。ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个...

  • Zookeeper

    Zookeeper是分布式系统中的中间件,负责分布式系统的协调服务。可用于 master选举 实现配置文件的统一管...

网友评论

    本文标题:深入讲解,分布式中间件Zookeeper

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