4.4. Kafka Connect 서비스 다시 시작
이제 Debezium MySQL 커넥터가 이벤트를 생성, 업데이트 및 삭제하는 방법을 보았으므로 실행 중이 아닌 경우에도 변경 이벤트를 캡처하는 방법을 확인할 수 있습니다.
Kafka Connect 서비스는 등록된 커넥터에 대한 작업을 자동으로 관리합니다. 따라서 오프라인 상태가 되면 재시작 시 실행 불가능한 작업이 모두 시작됩니다. 즉, Debezium이 실행되고 있지 않더라도 데이터베이스의 변경 사항을 보고할 수 있습니다.
이 절차에서는 Kafka Connect를 중지하고 데이터베이스에서 일부 데이터를 변경한 다음 Kafka Connect를 다시 시작하여 변경 이벤트를 확인합니다.
프로세스
Kafka Connect 서비스를 중지합니다.
Kafka Connect 배포의 구성을 엽니다.
$ oc edit deployment/my-connect-cluster-connect
배포 구성이 열립니다.
apiVersion: apps.openshift.io/v1 kind: Deployment metadata: ... spec: replicas: 1 ...
-
spec.replicas
값을0
으로 변경합니다. - 설정을 저장합니다.
Kafka Connect 서비스가 중지되었는지 확인합니다.
이 명령은 Kafka Connect 서비스가 완료되었으며 실행 중인 Pod가 없음을 보여줍니다.
$ 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
Kafka Connect 서비스가 중단되는 동안 MySQL 클라이언트를 실행하는 터미널로 전환하고 새 레코드를 데이터베이스에 추가합니다.
mysql> INSERT INTO customers VALUES (default, "Sarah", "Thompson", "kitt@acme.com");
Kafka Connect 서비스를 다시 시작합니다.
Kafka Connect 서비스의 배포 구성을 엽니다.
$ oc edit deployment/my-connect-cluster-connect
배포 구성이 열립니다.
apiVersion: apps.openshift.io/v1 kind: Deployment metadata: ... spec: replicas: 0 ...
-
spec.replicas
값을1
로 변경합니다. - 배포 구성을 저장합니다.
Kafka Connect 서비스가 다시 시작되었는지 확인합니다.
이 명령은 Kafka Connect 서비스가 실행 중이고 Pod가 준비되었음을 보여줍니다.
$ 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
-
kafka-console-consumer.sh
를 실행 중인 터미널로 전환합니다. 도착한 대로 새 이벤트가 열립니다. Kafka Connect가 오프라인 상태일 때 생성한 레코드를 검사합니다(읽기 쉽도록 포맷).
{ ... "payload":{ "id":1005 } } { ... "payload":{ "before":null, "after":{ "id":1005, "first_name":"Sarah", "last_name":"Thompson", "email":"kitt@acme.com" }, "source":{ "version":"2.3.4.Final", "connector":"mysql", "name":"dbserver1", "ts_ms":1582581502000, "snapshot":"false", "db":"inventory", "table":"customers", "server_id":223344, "gtid":null, "file":"mysql-bin.000004", "pos":364, "row":0, "thread":5, "query":null }, "op":"c", "ts_ms":1582581502317 } }