差不多一年前提到了 Kafka 打算拔掉 ZooKeeper 的計畫 (在「Kafka 拔掉 ZooKeeper 的計畫」這邊有提到),昨天 Confluent 發了一篇進展:「Apache Kafka Made Simple: A First Glimpse of a Kafka Without ZooKeeper」。
這件事情可以在「KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum」這邊看到說明,另外在 Jira 上面則是在 KAFKA-9119 這邊追蹤。
目前的好消息就是 KIP-500 的程式碼都已經推進 trunk,目標在 2.8 釋出時就可以用:
So we’re very pleased to say that the early access of the KIP-500 code has been committed to trunk and is expected to be included in the upcoming 2.8 release.
文件裡面會用「Kafka Raft Metadata mode」或是「KRaft」稱呼這種模式:
For the first time, you can run Kafka without ZooKeeper. We call this the Kafka Raft Metadata mode, typically shortened to KRaft (pronounced like craft) mode.
然後有缺一些功能,另外就是常態性宣導這是測試版,建議不要在 production 環境用:
Beware, there are some features that are not available in this early-access release. We do not yet support the use of ACLs and other security features or transactions. Also, both partition reassignment and JBOD are unsupported in KRaft mode (these are anticipated to be available in an Apache Kafka release later in the year). Hence, consider the quorum controller experimental software—we don’t advise subjecting it to production workloads. If you do try out the software, however, you’ll find a host of new advantages: It’s simpler to deploy and operate, you can run Kafka in its entirety as a single process, and it can accommodate significantly more partitions per cluster (see measurements below).
目前丟出來的測試數據可以看到有大幅改善,但仔細看居然是停機與恢復時間:
不知道實際的效能上有多少影響 (正面或是負面),還是得等了...