3.4. 重启 Kafka Connect 服务
现在,您已经了解了 Debezium MySQL 连接器如何捕获创建、更新和删除事件,现在您将会看到如何捕获更改事件,即使它未在运行。
Kafka Connect 服务自动管理其注册连接器的任务。因此,如果它处于离线状态,重启时会启动任何运行的任务。这意味着,即使 Debezium 没有运行,它仍然可以报告数据库中的更改。
在此过程中,您将停止 Kafka Connect,更改数据库中的一些数据,然后重新启动 Kafka Connect 以查看更改事件。
流程
停止 Kafka Connect 服务。
打开 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 Connect 服务。
打开 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 Connect 离线时创建的记录(为可读性而格式化):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow