Kafka 使用 ZK 在 Broker 中選出一個 Controller,用於 Partition 分配和 Leader 選舉。Partition 的分配:
將所有 Broker(假設共 n 個 Broker)和待分配的 Partition 排序。
將第 i 個 Partition 分配到第(i mod n)個 Broker 上 (這個就是 Leader)。
將第 i 個 Partition 的第 j 個 Replica 分配到第((i + j) mode n)個 Broker 上。