ZooKeeper 应用场景

ZooKeeper 是一个分布式服务框架,它主要是用来解决分布式应用中经常遇到的 一些数据管理问题,如:命名服务、状态同步、配置中心、集群管理等。

一、命名服务

命名服务是分布式系统中比较常见的一类场景。命名服务是分布式系统最基本的 公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供 的服务地址或远程对象等——这些我们都可以统称它们为名字(Name),其中较 为常见的就是一些分布式服务框架(如 RPC、RMI)中的服务地址列表,通过使 用命名服务,客户端应用能够根据指定名字来获取资源的实体、服务地址和提供 者的信息等。
在这里插入图片描述

二、状态同步

每个节点除了存储数据内容和 node 节点状态信息之外,还存储了已经注册的 APP 的状态信息,当有些节点或 APP 不可用,就将当前状态同步给其他服务。

三、配置中心

现在我们大多数应用都是采用的是分布式开发的应用,搭建到不同的服务器上, 我们的配置文件,同一个应用程序的配置文件一样,还有就是多个程序存在相同 的配置,当我们配置文件中有个配置属性需要改变,我们需要改变每个程序的配 置属性,这样会很麻烦的去修改配置,那么可用使用 ZooKeeper 来实现配置中心, ZooKeeper 采用的是推拉相结合的方式: 客户端向服务端注册自己需要关注的 节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送 Watcher 事件通知,客户端接收到这个消息通知后,需要主动到服务端获取最新的数据。

四、集群管理

所谓集群管理,包括集群监控与集群控制两大块,前者侧重对集群运行时状态的收集,后者则是对集群进行操作与控制,在日常开发和运维过程中,我们经常会 有类似于如下的需求:
①希望知道当前集群中究竟有多少机器在工作。
②对集群中每台机器的运行时状态进行数据收集。
③对集群中机器进行上下线操作。

五、ZooKeeper两大特性

①客户端如果对 ZooKeeper 的一个数据节点注册 Watcher 监听,那么当该数据节点的内容或是其子节点列表发生变更时,ZooKeeper 服务器就会向订阅的客户端发 送变更通知。
②对在 ZooKeeper 上创建的临时节点,一旦客户端与服务器之间的会话失效,那么 该临时节点也就被自动清除。

Watcher(事件监听器),是 Zookeeper 中的一个很重要的特性。Zookeeper 允许用户在指定节点上注册一些 Watcher,并且在一些特定事件触发的时候, ZooKeeper 服务端会将事件通知到感兴趣的客户端上去,该机制是 Zookeeper 实现分布式协调服务的重要特性。
在这里插入图片描述

0 生产者启动 
1 生产者注册至 zookeeper 
2 消费者启动并订阅频道 
3 zookeeper 通知消费者事件 
4 消费者调用生产者 
5 监控中心负责统计和监控服务状态
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值