3.4. 重启 Kafka Connect 服务
您已看到 Debezium MySQL 连接器如何捕获创建、更新和删除事件,现在它也可以在没有运行时捕获更改事件。
Kafka Connect 服务自动管理其已注册连接器的任务。因此,如果它重启时,它将启动任何非运行的任务。这意味着,即使 Debezium 没有运行,它仍然可以报告数据库中的更改。
在此过程中,您将停止 Kafka Connect,更改数据库中的一些数据,然后重新启动 Kafka Connect 以查看更改事件。
流程
停止 Kafka 连接服务。
打开 Kafka Connect 服务的部署配置:
oc edit dc/my-connect-cluster-connect
$ oc edit dc/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 连接服务。
打开 Kafka Connect 服务的部署配置。
oc edit dc/my-connect-cluster-connect
$ oc edit dc/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 连接离线时所创建的记录(便于阅读):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow