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. CDC workflowAlur 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

PeranMembacaMenulisPerilaku replikasi
PrimerYaYaMengirimkan perubahan ke cluster siaga
SiagaYaTidakMenerima 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.

OperasiGunakan ketikaKehilangan dataPerilaku yang diharapkan
PeralihanPrimer saat ini masih dapat dijangkau, atau Anda melakukan pemeliharaan terencanaRPO = 0Menunggu sisa data yang direplikasi sebelum perubahan peran
FailoverData utama saat ini tidak tersedia dan tidak dapat dipulihkan dengan cepatKemungkinanMempromosikan 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.
  • pchannels yang 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.