Migration MySQL to Postgres với Strimzi Kafka Connect
Triển khai MySQL to Postgres Migration với Strimzi Kafka Connect
Sử dụng Strimzi Kafka Operator trên Kubernetes để migrate dữ liệu từ MySQL sang Postgres qua Kafka Connect. Hướng dẫn ngắn gọn, dựa trên repo GitHub. Tất cả tài nguyên trong namespace kafka.
Giới thiệu ngắn gọn
Kafka Connect là API server quản lý pub/sub dữ liệu, thay thế client trực tiếp truy cập broker. Chúng ta sẽ deploy Kafka, Schema Registry, Connect, rồi migrate DB.

Bước 1: Deploy Strimzi Operator
Tải từ strimzi.io hoặc dùng file:
kubectl apply -f 0_strimzi-cluster-operator-0.26.0.yaml
Kiểm tra pod running.
Bước 2: Deploy Kafka Cluster
Sử dụng 1_kafka-simple-cluster.yaml (Kafka v3.0.0, 3 replicas, ephemeral storage):
kubectl apply -f 1_kafka-simple-cluster.yaml
Chờ pod ready.
Bước 3: Deploy Schema Registry
Sử dụng Confluent image, kết nối Kafka bootstrap:
kubectl apply -f 2_schema-registry.yaml
Cập nhật env SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS = my-cluster-kafka-bootstrap:9092.
Bước 4: Deploy Kafka Connect
Sử dụng image với JDBC connector:
kubectl apply -f 3_kafka-connect.yaml
Cấu hình bootstrapServers và schema registry URL.
Bước 5: Deploy MySQL & Postgres
Tài khoản: root/mypassword (MySQL), postgres/mypassword (Postgres).
kubectl apply -f db-deploy/
MySQL init script tạo DB test, table example.
Bước 6: Deploy Connectors
MySQL Source (incrementing mode):
kubectl apply -f 4_kafka-mysql-source-connector.yaml
Postgres Sink:
kubectl apply -f 5_kafka-postgres-sink-connector.yaml
Kiểm tra Postgres: \dt và select * from example;.
Kết luận
Với Strimzi, migration MySQL sang Postgres qua Kafka trở nên dễ dàng, hỗ trợ scale và pub/sub. Thêm dữ liệu MySQL (id tăng dần) để kiểm tra sync. Xem docs tại Confluent.