zoukankan      html  css  js  c++  java
  • Kafka 不再需要 ZooKeeper

    img

    Kafka 2.8.0 出炉了,此版本有一项重大改进:

    实现了 Raft 分布式一致性机制,意味着可以脱离 ZooKeeper 独立运行了。

    ZooKeeper 在 Kafka 中扮演着重要的角色,用来存储 Kafka 的元数据。

    ZooKeeper 存储着 Partition 和 Broker 的元数据 ,同时也负责 Kafka Controller 的选举工作。

    对于 Kafka 来讲,ZooKeeper 是一套外部系统,要想部署一套 Kafka 集群,就要同时部署、管理、监控 ZooKeeper。

    ZooKeeper 有自己的配置方式、管理工具,和 Kafka 完全不一样,所以,一起搞两套分布式系统,自然就提升了复杂度,也更容易出现问题。有时工作量还会加倍,例如要开启一些安全特性,Kafka 和 ZooKeeper 中都需要配置。

    除了复杂度,外部存储也会降低系统效率

    例如 Kafka 集群每次启动的时候,Controller 必须从 ZooKeeper 加载集群的状态信息。

    再比如选举出一个新的 Controller 之后也会比较麻烦,因为需要加载元数据,而此时元数据的量可能已经非常大了,这就产生了效率问题。

    所以,ZooKeeper 带来的复杂度、系统效率这两个问题已经成为 Kafka 的痛点,Kafka 团队一直在努力去除对 ZooKeeper 的依赖。Kafka 2.8.0 这个版本终于实现了。

    使用 Raft 模式之后,元数据、配置信息都会保存在 @metadata 这个 Topic 中,自动在集群中复制。这样 Kafka 就会简单轻巧很多。

    但需要注意的是,Zookeeper-less Kafka 还属于早期版本,并不完善,所以,现在不要应用在线上产品环境中。

  • 相关阅读:
    简单bb两句
    P2894 [USACO08FEB]Hotel G
    文艺平衡树
    CS184.1X 计算机图形学导论作业1
    C++ Primer Plus章节编程练习(第五章)
    C++ Primer Plus章节编程练习(第六章)
    CS184.1X 计算机图形学导论作业0
    C++ Primer Plus章节编程练习(第四章)
    计算机图形学之光栅图形学算法
    Codeforces 980B
  • 原文地址:https://www.cnblogs.com/yogoup/p/14749249.html
Copyright © 2011-2022 走看看