4.4. Kafka Connect サービスの再起動
Debezium MySQL コネクターが作成、更新、および削除イベントをキャプチャーする方法を確認しました。次に、コネクターが稼働していない場合でもどのように変更イベントをキャプチャーするかを見てみましょう。
Kafka Connect サービスは、登録されたコネクターのタスクを自動的に管理します。そのため、Kafka Connect サービスがオフラインになった場合は、サービスの再起動時に、実行されていないタスクをすべて開始します。つまり、Debezium が稼働していない場合でも、サービスは変更をデータベースに報告できます。
この手順では、Kafka Connect を停止し、データベースのデータを一部変更した後、Kafka Connect を再起動して変更イベントを確認します。
手順
Kafka Connect サービスを停止します。
Kafka Connect デプロイメントの設定を開きます。
oc edit deployment/my-connect-cluster-connect
$ oc edit deployment/my-connect-cluster-connect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントの設定が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
spec.replicas
の値を0
に変更します。 - 設定を保存します。
Kafka Connect サービスが停止したことを確認します。
このコマンドを実行すると、Kafka Connect サービスが完了し、稼働している Pod がないことを確認できます。
oc get pods -l strimzi.io/name=my-connect-cluster-connect
$ oc get pods -l strimzi.io/name=my-connect-cluster-connect NAME READY STATUS RESTARTS AGE my-connect-cluster-connect-1-dxcs9 0/1 Completed 0 7h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Kafka Connect サービスが停止している間に、MySQL クライアントを実行しているターミナルに切り替え、新しいレコードをデータベースに追加します。
mysql> INSERT INTO customers VALUES (default, "Sarah", "Thompson", "kitt@acme.com");
mysql> INSERT INTO customers VALUES (default, "Sarah", "Thompson", "kitt@acme.com");
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka Connect サービスを再起動します。
Kafka Connect サービスのデプロイメント設定を開きます。
oc edit deployment/my-connect-cluster-connect
$ oc edit deployment/my-connect-cluster-connect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントの設定が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
spec.replicas
の値を1
に変更します。 - デプロイメント設定を保存します。
Kafka Connect サービスが再起動したことを確認します。
このコマンドを実行すると、Kafka Connect サービスが稼働中で、Pod の準備ができていることを確認できます。
oc get pods -l strimzi.io/name=my-connect-cluster-connect
$ oc get pods -l strimzi.io/name=my-connect-cluster-connect NAME READY STATUS RESTARTS AGE my-connect-cluster-connect-2-q9kkl 1/1 Running 0 74s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
kafka-console-consumer.sh
を実行しているターミナルに切り替えます。新しいイベントを受け取ると表示されます。 Kafka Connect がオフラインだったときに作成したレコードを確認します (書式を調整して読みやすくしてあります)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow