第14章 Cruise Control を使用したトピックレプリケーション係数の変更
Cruise Control REST API の /topic_configuration
エンドポイントにリクエストを送信して、レプリケーション係数を含むトピック設定を変更します。
前提条件
-
Red Hat Enterprise Linux に
kafka
ユーザーとしてログインしている。 - Cruise Control を設定 した。
- Cruise Control Metrics Reporter をデプロイ した。
手順
Cruise Control サーバーを起動します。デフォルトでは、サーバーはポート 9092 で起動します。オプションで別のポートを指定します。
cd /opt/cruise-control/ ./kafka-cruise-control-start.sh config/cruisecontrol.properties <port_number>
Cruise Control が実行していることを確認するには、Cruise Control サーバーの
/state
エンドポイントに GET リクエストを送信します。curl -X GET 'http://<cc_host>:<cc_port>/kafkacruisecontrol/state'
--describe
オプションを指定してbin/kafka-topics.sh
コマンドを実行し、ターゲットトピックの現在のレプリケーション係数を確認します。/opt/kafka/bin/kafka-topics.sh \ --bootstrap-server localhost:9092 \ --topic <topic_name> \ --describe
トピックのレプリケーション係数を更新します。
curl -X POST 'http://<cc_host>:<cc_port>/kafkacruisecontrol/topic_configuration?topic=<topic_name>&replication_factor=<new_replication_factor>&dryrun=false'
たとえば、
curl -X POST 'localhost:9090/kafkacruisecontrol/topic_configuration?topic=topic1&replication_factor=3&dryrun=false'
とします。-
前述の手順と同様に、
--describe
オプションを指定してbin/kafka-topics.sh
コマンドを実行し、トピックへの変更の結果を確認します。