Migration MySQL to Postgres với Strimzi Kafka Connect

SonetOps 28/02/2025
Chia sẻ:

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.

Kafka Connect Migration

Hình 1: Luồng migration MySQL → Kafka → Postgres

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: \dtselect * 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.

Bài viết liên quan