Zookeeper集群典型分布式应用场景

1.配置管理——需求是数据一致性

ZooKeeper 采用的是推拉相结合的方式:客户端向服务端注册自己需要关注的节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送Watcher事件通知,客户端接收到这个消息通知之后,需要主动到服务端获取最新的数据。

2.命名服务

服务需要被访问,如服务提供的uri,但是uri是易变的,所以需要给变化的uri取一个固定的名字,每次通过这个名字来获取服务的uri。

Zookeeper让服务可以创建一个节点,节点名为服务名,数据为uri,通过这种方式来完成命名。

3.负载均衡

1)负载注册/更新——负载ip:port可以保存到zookeeper的临时节点数据中,并具有一致性

2)负载健康检查——对于下线的负载,由于其创建的临时节点自动删除,ip:port数据也会一并删除

3)负载分派——获取负载节点下的所有临时节点,使用负载均衡算法选取一个负载

4.master选举

客户端集群每天都会定时往ZooKeeper. 上创建- - 个临时节点,例如/master_ election/

2013-09- 20/binding。在这个过程中,只有一个客户端能够成功创建这个节点,那么这个;

客户端所在的机器就成为了Master.同时,其他没有在ZooKeeper.上成功创建节点的客

户端,都会在节点/master_ election/2013-09-20. 上注册一个子节点变更的Watcher, 用于

监控当前的Master机器是否存活,一旦发现当前的Master挂了,那么其余的客户端将

会重新进行Master选举。

5.分布式锁

在需要获取排他锁时,所有的客户端都会试图通过调用create()接口, 在

/exclusive_ lock 节点下创建临时子节点/exclusive_ lock/lock. 在前面几节中我们也介绍了,

ZooKeeper会保证在所有的客户端中,最终只有一个客户端能够创建成功,那么就可以

认为该客户端获取了锁。同时,所有没有获取到锁的客户端就需要到/exclusive_lock节

点上注册一一个子节点变更的Watcher监听,以便实时监听到lock节点的变更情况。

原文地址:https://www.cnblogs.com/handwrit2000/p/12688012.html

时间: 2024-07-31 12:14:21

Zookeeper集群典型分布式应用场景的相关文章

搭建zookeeper集群

简介: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等.本文将 从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理.集群管理.同步锁.Leader 选举.队列管理等),用 Java 实现它们并给出示例代码.   安装和配置详解 本文介绍的 Zookeep

kafka 、 zookeeper 集群(一)

一.入门 1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker.无论是kafka集群,还是producer和consumer都依赖于zo

构建高可用ZooKeeper集群

ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 ZooKeeper 便捷的使用方式.卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop.HBase.Kafka 和 Dubbo 等大型分布式系统中. 本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式.集群组成.容灾和水平扩容四方面逐步深入,最终构建

构建高可用ZooKeeper集群(转载)

ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 ZooKeeper 便捷的使用方式.卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop.HBase.Kafka 和 Dubbo 等大型分布式系统中. 本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式.集群组成.容灾和水平扩容四方面逐步深入,最终构建

P7架构师带你构建高可用ZooKeeper集群

前言: ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 ZooKeeper 便捷的使用方式.卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop.HBase.Kafka 和 Dubbo 等大型分布式系统中. 本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式.集群组成.容灾和水平扩容四方面逐步深入,

docker 搭建zookeeper集群和kafka集群

docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker appl

kafka学习(二)-zookeeper集群搭建

zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是hadoop的一个子项目,其发展历程无需赘述.在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制 不适合在某些应用中使用,因此需要有一种可靠的.可扩展的.分布式的.可配置的协调机制来统一系统的状态.Zookeeper的目的就在于此. 1.角色 Zookeeper中的角色主要有以下三

activemq+zookeeper 集群部署基于levedb

集群图 zookeeper集群,上一篇博客写了zookeeper集群的部署 Ip 服务注册端口 主机名 192.168.56.15 2181 zk01 192.168.56.16 2181 zk02 192.168.56.17 2181 zk03 activemq部署 IP 管控台端口 集群通讯端口 消息端口 192.168.56.15 8161 61621 51511 192.168.56.16 8162 61622 51512 192.168.56.17 8163 61623 51513 h

Zookeeper实战之嵌入式执行Zookeeper集群模式

非常多使用Zookeeper的情景是须要我们嵌入Zookeeper作为自己的分布式应用系统的一部分来提供分布式服务.此时我们须要通过程序的方式来启动Zookeeper.此时能够通过Zookeeper API的ZooKeeperServerMain类来启动Zookeeper服务. 以下是一个集群模式下启动Zookeeper服务的样例 这里假定我们执行Zookeeper集群的三台机器名分别为fanbinx1,fanbinx2,fanbinx3  首先是zoo.cfg配置文件 tickTime=200