Milvus CDC
Milvus CDC (Change Data Capture) mereplikasi perubahan data dari satu cluster Milvus ke cluster lainnya. Anda bisa menggunakan CDC untuk membangun topologi pemulihan bencana siaga-primer untuk Milvus.
Dalam topologi primary-standby, satu cluster bertindak sebagai primary dan menerima penulisan. Satu atau lebih cluster siaga secara terus menerus menerima perubahan dari cluster utama dan dapat melayani lalu lintas baca. Ketika cluster utama tidak tersedia atau membutuhkan pemeliharaan, Anda bisa mengalihkan lalu lintas layanan ke cluster siaga.
Arsitektur
Topologi yang umum terdiri dari:
- Cluster primer: Cluster sumber untuk replikasi. Klaster ini menerima pembacaan dan penulisan.
- Klaster siaga: Sebuah cluster target untuk replikasi. Cluster ini menerima perubahan dari cluster primer dan hanya dapat dibaca saat masih dalam keadaan siaga.
- Simpul CDC: Komponen Milvus yang meneruskan perubahan WAL dari cluster utama saat ini ke cluster siaga. Menerapkan CDC pada setiap cluster yang mungkin menjadi primer setelah peralihan atau peralihan.
- Topologi replikasi: Hubungan sumber-ke-target yang dikonfigurasi, seperti cluster-a -> cluster-b. Berikut ini adalah ilustrasi dari topologi tersebut.
Alur kerja CDC
Topologi yang Didukung
Penerapan CDC yang paling umum adalah satu primary dan satu standby:
Application writes
|
v
Primary cluster A -- CDC replication --> Standby cluster B
Milvus CDC juga mendukung topologi satu primer dan banyak siaga:
Primary cluster A -- CDC replication --> Standby cluster B
\-- CDC replication --> Standby cluster C
Milvus CDC tidak mendukung penerapan multi-primer atau aktif-siaga, di mana dua atau lebih cluster menerima lalu lintas penulisan pada saat yang bersamaan.
Perilaku Utama dan Siaga
| Peran | Membaca | Menulis | Perilaku replikasi |
|---|---|---|---|
| Primer | Ya | Ya | Mengirimkan perubahan ke cluster siaga |
| Siaga | Ya | Tidak | Menerima perubahan yang direplikasi dari primer |
Cluster siaga menolak permintaan tulis langsung. Hal ini mencegah terjadinya split brain dan menjaga topologi replikasi tetap konsisten.
Peralihan yang Direncanakan vs Failover
Milvus CDC menyediakan dua cara untuk memindahkan lalu lintas layanan dari primary saat ini ke cluster siaga.
| Operasi | Gunakan ketika | Kehilangan data | Perilaku yang diharapkan |
|---|---|---|---|
| Peralihan | Primer saat ini masih dapat dijangkau, atau Anda melakukan pemeliharaan terencana | RPO = 0 | Menunggu sisa data yang direplikasi sebelum perubahan peran |
| Failover | Data utama saat ini tidak tersedia dan tidak dapat dipulihkan dengan cepat | Kemungkinan | Mempromosikan siaga dengan segera sehingga penulisan dapat dilanjutkan |
Gunakan peralihan kapan pun primary saat ini masih dapat merespons. Gunakan peralihan hanya jika memulihkan ketersediaan lebih penting daripada menunggu primary yang asli.
Jeda CDC dan Mengapa Ini Penting
CDC lag adalah jumlah data yang telah ditulis ke cluster primer tetapi belum diterapkan ke cluster siaga.
Jeda CDC memengaruhi kedua opsi pemulihan:
- Selama peralihan, jeda CDC yang lebih rendah biasanya berarti operasi selesai lebih cepat.
- Selama failover, jeda CDC menunjukkan jendela data yang mungkin hilang jika primary asli tidak tersedia.
Anda harus memantau jeda CDC secara terus menerus dan menjaganya serendah mungkin. Halaman Siapkan Replikasi CDC menyertakan contoh PromQL untuk memperkirakan jeda CDC.
Keterbatasan
Milvus CDC saat ini memiliki beberapa batasan berikut:
- Hanya mendukung topologi primer tunggal.
- Tidak mendukung penulisan aktif-aktif atau multi-primer.
- Klaster siaga dapat melayani lalu lintas baca, tetapi mereka menolak penulisan langsung saat mereka tetap siaga.
- Failover dapat kehilangan data yang telah ditulis ke primary lama tetapi belum direplikasi ke standby.
pchannelsyang dikonfigurasi harus sesuai dengan tata letak saluran yang sebenarnya dari setiap cluster.
PERTANYAAN UMUM
Apakah cluster siaga dapat melayani kueri?
Ya. Cluster siaga dapat melayani lalu lintas baca. Ia tidak dapat menerima penulisan hingga menjadi yang utama.
Apakah Milvus CDC mendukung penulisan aktif-aktif?
Tidak. Milvus CDC dirancang untuk topologi primer tunggal. Menulis ke beberapa cluster pada saat yang sama dapat menyebabkan otak terbelah dan perbedaan data.
Apakah peralihan akan menghilangkan data?
Tidak. Peralihan menunggu data yang tersisa untuk direplikasi sebelum siaga menjadi primer.
Apakah failover kehilangan data?
Bisa. Data apa pun yang ditulis ke primary lama namun belum direplikasi ke standby dapat hilang.
Berapa banyak data yang bisa hilang selama failover?
Potensi kehilangan data dibatasi oleh jeda CDC pada saat primary tidak tersedia.