学校网站建设计划,定制钻戒,信誉好的东莞网站推广,上海建站价格zk相当于是kafka的一个基础设施
Kafka是一种高吞吐量、可扩展的分布式发布订阅消息系统#xff0c;ZooKeeper是一个分布式协调服务#xff0c;用于管理和协调分布式系统中的各种资源 Zookeeper#xff1a;管理broker#xff0c;consumer
创建broker后#xff0c;向zk注册…zk相当于是kafka的一个基础设施
Kafka是一种高吞吐量、可扩展的分布式发布订阅消息系统ZooKeeper是一个分布式协调服务用于管理和协调分布式系统中的各种资源 Zookeeper管理brokerconsumer
创建broker后向zk注册新的broker信息以及监测 partition leader存活性实现在服务器正常运行下的水平拓展Topic的注册zk会维护broker与topic的关系通过/brokers/topics/topic.name节点来记录
Consumer可以使用group形式消费kafka中的数据Zookeeper会给每个consumer group一个ID,即同一份数据可以被不同的用户ID多次消费。因此这就是单播与多播的实现。以单个消费者还是以组别的方式去消费数据由用户自己去定义。Zookeeper管理consumer的offset跟踪当前消费的offset。
Zookeepr不管理producer
只是能够提供当前broker的相关信息Producer向zookeeper中注册watcher,了解topic的partition的消息以动态了解运行情况实现负载均衡 具体而言Kafka使用ZooKeeper来进行以下操作 协调管理Kafka集群中的各个节点通过ZooKeeper来协调任务分配、负载均衡和故障恢复等操作。ZooKeeper充当了Kafka集群的协调者确保集群的稳定运行。 元数据存储Kafka使用ZooKeeper来存储和管理关于主题topics、分区partitions和消费者consumers等元数据的信息。这些元数据包括主题的分区分配、分区的偏移量offset以及消费者组的成员关系等。 服务发现Kafka生产者和消费者在连接到Kafka集群时需要知道正确的Broker地址。ZooKeeper提供了服务发现功能允许客户端动态地发现可用的Kafka Broker。
Broker 的上线、下线处理新创建的 topic 或已有 topic 的分区扩容处理分区副本的分配、leader选举管理所有副本的状态机和分区的状态机处理状态机的变化事件topic删除、副本迁移、leader切换等处理
总之ZooKeeper在Kafka中充当了协调和元数据管理的角色为Kafka提供了可靠性和高可用性的支持。Kafka依赖于ZooKeeper来保证集群的稳定运行并利用其提供的功能来管理分布式系统中的各种资源
kafka使用zookeeper来实现动态的集群扩展不需要更改客户端producer和consumer的配置。broker会在zookeeper注册并保持相关的元数据topicpartition信息等更新。而客户端会在zookeeper上注册相关的watcher。一旦zookeeper发生变化客户端能及时感知并作出相应调整。这样就保证了添加或去除broker时各broker间仍能自动实现负载均衡。这里的客户端指的是Kafka的消息生产端(Producer)和消息消费端(Consumer)