Multi-region high availability for Kafka workloads with a single Stretch Cluster
Bài tóm tắt Redpanda 2026 3. Quy mô lớn Độ khó: Trung bình
Redpanda · 2026 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bài release note của nhà cung cấp (Redpanda Operator 26.2). Phần lớn là manifest mẫu; wiki chỉ giữ hai ý kiến trúc: stretch cluster và probe cho rolling restart. Mọi nhận định ghi "theo Redpanda". Đọc cùng Redpanda 2026 (bản bất đồng bộ).
Bối cảnh
- Pipeline dữ liệu quan trọng chạy nhiều gigabit/giây, trải nhiều region. Sao chép bất đồng bộ (mirroring) luôn để lại cửa sổ mất dữ liệu và cần bước failover.
Thay đổi chính
- Stretch Cluster (GA): một cụm logic có broker trải trên nhiều cụm Kubernetes, thường mỗi cụm một AZ, region, thậm chí một cloud. Mỗi partition sao chép bằng Raft; ghi chỉ được ack khi đa số replica đã lưu bền.
- Theo Redpanda: RPO = 0 (mọi bản ghi đã ack đều nằm trong một quorum trải nhiều miền lỗi) và RTO = 0 (không có bước failover; các region còn lại vẫn giữ đa số nên tự bầu leader mới). Ví dụ trong bài dùng ba pool cho ba region.
- Hai CRD:
StretchCluster(cấu hình chung) vàRedpandaBrokerPool(mỗi cụm thành viên một cái, ghi đè theo region).
- Probe cho rolling restart: trước đây operator chỉ xem sức khoẻ toàn cụm, để hở hai cửa:
- Trước khi restart: cụm trông khoẻ nhưng broker sắp restart đang giữ replica in-sync duy nhất của một partition; restart là producer
acks=1có thể mất dữ liệu. - Sau khi restart: pod báo Ready với Kubernetes trước khi broker bắt kịp replica; restart pod kế tiếp có thể làm mất quorum.
- Nay: pre-restart probe hỏi chính broker có an toàn để restart không (rủi ro mất dữ liệu
acks=1, partition mất leader, mất quorum vớiacks=-1); post-restart probe chờ broker lấy lại đủ replica in-sync (mặc định 100%) mới sang pod sau. Probe lỗi thì fail closed: hoãn chứ không đi tiếp.
- Trước khi restart: cụm trông khoẻ nhưng broker sắp restart đang giữ replica in-sync duy nhất của một partition; restart là producer
Vì sao
- Theo Redpanda: đồng bộ qua quorum khác hẳn async: không có cửa sổ mất dữ liệu, không có thao tác promote. (Bài không nói chi phí độ trễ ghi khi quorum trải nhiều region.)
- "Ready" của Kubernetes không biết trạng thái sao chép; chỉ hệ lưu trữ mới biết restart lúc nào là an toàn.
Bài học cho SWE
- Sync quorum trải nhiều region đổi độ trễ ghi lấy RPO = 0; async đổi ngược lại. Chọn theo dữ liệu nào không được mất (Failover, replica và dự phòng dữ liệu, Độ tin cậy và multi-region).
- Cần ít nhất ba miền lỗi để mất một miền vẫn còn đa số.
- Rolling restart hệ có trạng thái phải hỏi trạng thái replica thật của từng node, không dựa vào health check chung; khi không chắc thì dừng (Deploy và release an toàn).
Liên quan
- Redpanda 2026 · Redpanda 2025
- Vitess (PlanetScale/CNCF) 2026 (quorum và promote ở MySQL)
- Failover, replica và dự phòng dữ liệu · Độ tin cậy và multi-region · Deploy và release an toàn
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (2)