第12章 ブローカーの追加または削除によるクラスターのスケーリング
ブローカーを追加して Kafka クラスターをスケーリングすると、クラスターのパフォーマンスと信頼性が向上します。ブローカーを追加すると、利用可能なリソースが増加し、クラスターがより大きなワークロードを処理し、より多くのメッセージを処理できるようになります。また、より多くのレプリカとバックアップを提供することでフォールトトレランスを向上させることもできます。逆に、十分に活用されていないブローカーを削除すると、リソースの消費が削減され、効率が向上します。中断やデータ損失を避けるために、スケーリングは慎重に行う必要があります。クラスター内のすべてのブローカーにパーティションを再分散することにより、各ブローカーのリソース使用率が削減され、クラスターの全体的なスループットが向上します。
Kafka トピックのスループットを向上させるには、そのトピックのパーティションの数を増やすことができます。これにより、トピックの負荷をクラスター内の異なるブローカー間で共有できるようになります。ただし、すべてのブローカーが特定のリソース (I/O など) によって制約されている場合、パーティションを追加してもスループットは向上しません。この場合、クラスターにブローカーをさらに追加する必要があります。
マルチノード Kafka クラスターの実行時にブローカーを追加すると、レプリカとして機能するクラスター内のブローカーの数に影響します。トピックの実際のレプリケーション係数は、default.replication.factor
および min.insync.replicas
の設定、および使用可能なブローカーの数によって決まります。たとえば、レプリケーション係数 3 は、トピックの各パーティションが 3 つのブローカー間でレプリケーションされ、ブローカーに障害が発生した場合のフォールトトレランスを確保することを意味します。
レプリカ設定の例
default.replication.factor = 3 min.insync.replicas = 2
ブローカーを追加または削除しても、Kafka はパーティションを自動的に再割り当てしません。これを行う最良の方法は、Cruise Control を使用することです。クラスターをスケールアップまたはスケールダウンするときに、Cruise Control の add-brokers
モードと remove-brokers
モードを使用できます。
-
Kafka クラスターをスケールアップした後、
add-brokers
モードを使用して、パーティションレプリカを既存のブローカーから新しく追加したブローカーに移動します。 -
Kafka クラスターをスケールダウンする前に、
remove-brokers
モードを使用して、削除されるブローカーからパーティションレプリカを移動します。
ブローカーをスケールダウンする場合、クラスターから削除する特定の Pod を指定することはできません。代わりに、ブローカーの削除プロセスは、最も大きい番号の Pod から開始されます。