zookeeper在kafka中是什么角色?

Kafka是基于发布/订阅模式的分布式消息系统。

在Kafka,消息流程如下

(1)生产者生成消息,并发布到消息系统中。

(2)消息系统负责存储消息,并保证数据安全。

(3)消费者订阅消息,最终消息系统将消息投递给消费者,并删除已消费成功的消息。

ZooKeeper的作用主要包括以下几个方面:

(1)存储元数据

由于ZooKeeper可以保证集群内数据的强一致性,所以使用ZooKeeper存储元数据是非常方便的。这些元数据包括主题、Kafka中的分区、命名空间、BookKeeper的Ledger等,以及配置信息,如Kafka的动态配置、用户权限等。

(2)节点监控、节点发现。

主要利用了ZooKeeper两个特性:

  • ZooKeeper客户端可以在ZooKeeper中建立临时ZK节点,当该ZooKeeper客户端连接断开后,ZooKeeper将删除该客户端所有的临时节点。
  • ZooKeeper提供了Watch机制,ZooKeeper客户端可以监控某个ZK节点的变化(如ZK节点被写入了新的内容或者创建了子节点等),当ZK节点发生变化时,ZooKeeper将发送事件通知监控该节点的ZooKeeper客户端。下面将ZooKeeper中的事件称为ZK事件。

(3)选举中心节点。

由于在ZooKeeper中不能重复创建同一个ZK节点,所以Kafka利用该特性选举中心节点:在Kafka选举中心节点时,会创建某一个特定路径的临时ZK节点。这样,即使多个服务同时尝试成为中心节点,也只有一个服务能成功创建该ZK节点,并成为中心节点,而其他服务可以监控该临时ZK节点,当该临时ZK节点被删除后(由于旧的中心节点因故障下线),再尝试成为新的中心节点。

Kafka中的中心节点就是KafkaController节点,该KafkaController节点负责完成一些分布式协同工作,如故障转移等。可以被认为是“去中心化架构”。

说明一下分布式中的中心化架构与去中心化架构:

  • 中心化架构:集群选举一个中心节点,负责协调集群的正常运行,如监控其他节点的运行状态、执行故障转移等。
  • 去中心化架构:集群不需要选举中心节点,所有节点都是对等的。


 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值