Mengganti Jenis MQ untuk Milvus Cluster

Topik ini menjelaskan cara mengganti jenis antrean pesan (MQ) untuk penerapan cluster Milvus yang sudah ada. Milvus mendukung peralihan MQ online antara Pulsar, Kafka, dan Woodpecker tanpa waktu henti.

Fitur ini masih dalam proses perilisan dan dapat berubah sewaktu-waktu. Silakan hubungi tim dukungan Milvus jika Anda ingin mencobanya atau memiliki pertanyaan.

Prasyarat

  • Instance cluster Milvus yang sedang berjalan yang diinstal melalui Milvus Operator atau Helm.
  • Instance Milvus telah ditingkatkan ke versi terbaru yang mendukung fitur Switch MQ ini.

Beralih dari Pulsar/Kafka ke Woodpecker (MinIO)

Ikuti langkah-langkah berikut untuk mengganti jenis MQ dari Pulsar atau Kafka ke Woodpecker dengan penyimpanan MinIO.

Langkah 1: Pastikan instans Milvus sudah berjalan

Sebelum beralih, pastikan bahwa instans cluster Milvus Anda berjalan dengan baik. Anda dapat memverifikasi ini dengan membuat koleksi pengujian, memasukkan data, dan menjalankan kueri.

Langkah 2: (Opsional) Verifikasi konfigurasi Woodpecker

Konfigurasi default Milvus sudah mengatur jenis penyimpanan Woodpecker ke MinIO, jadi tidak ada konfigurasi tambahan yang diperlukan dalam banyak kasus.

Namun, jika sebelumnya Anda telah menyesuaikan konfigurasi Woodpecker, Anda harus memastikan bahwa woodpecker.storage.type disetel ke minio. Perbarui konfigurasi Milvus tanpa mengubah nilai mqType:

woodpecker:
  storage:
    type: minio

Langkah 3: Jalankan sakelar MQ

Jalankan perintah berikut untuk memicu sakelar ke Woodpecker:

curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "woodpecker"}'

Ganti <mixcoord_addr> dengan alamat layanan MixCoord Anda yang sebenarnya.

Langkah 4: Verifikasi pengalihan selesai

Proses peralihan selesai secara otomatis. Pantau log Milvus untuk pesan-pesan kunci berikut ini untuk mengonfirmasi peralihan telah selesai:

WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd

Pada pesan log di atas, <MQ1> adalah jenis MQ sumber (misalnya, pulsar atau kafka), dan <MQ2> adalah jenis MQ target (woodpecker).

  • Pesan pertama menunjukkan bahwa peralihan WAL dari sumber ke target telah selesai.
  • Pesan kedua menunjukkan bahwa semua saluran fisik telah dialihkan.
  • Pesan ketiga menunjukkan bahwa konfigurasi mq.type telah diperbarui di etcd.

Beralih dari Woodpecker (MinIO) ke Pulsar atau Kafka

Ikuti langkah-langkah berikut untuk mengganti jenis MQ dari Woodpecker ke Pulsar atau Kafka.

Langkah 1: Verifikasi bahwa instans Milvus sedang berjalan

Sebelum beralih, pastikan bahwa instans cluster Milvus Anda berjalan dengan benar.

Langkah 2: Konfigurasikan MQ target

Sebelum memicu peralihan, Anda perlu memastikan layanan MQ target (Pulsar atau Kafka) tersedia dan konfigurasi aksesnya diberikan ke dalam konfigurasi Milvus.

Langkah-langkah yang tepat di bagian ini tergantung pada apakah Anda menggunakan layanan MQ internal (yang dibundel) atau eksternal.

Opsi A: Pulsar/Kafka Internal (dibundel dengan Helm)

Jika Anda menggunakan paket Pulsar atau Kafka yang dibundel dengan Helm, perbarui rilis Helm Anda untuk mengaktifkan layanan MQ target dan menonaktifkan Woodpecker. Bendera streaming.enabled=true diperlukan untuk mengaktifkan Streaming Node, yang merupakan prasyarat untuk fitur Switch MQ. Misalnya, untuk beralih ke Pulsar:

helm upgrade -i my-release milvus/milvus \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  -f values.yaml

Setelah peningkatan, verifikasi bahwa konfigurasi akses MQ target telah diberikan ke dalam konfigurasi Milvus. Misalnya, untuk Pulsar:

pulsar:
  address: <pulsar-proxy-address>
  port: 6650

Opsi B: Pulsar/Kafka internal (dikelola oleh Milvus Operator)

Jika Anda menggunakan Milvus Operator, perbarui sumber daya khusus Milvus untuk menyertakan konfigurasi akses MQ target. Lihat Mengkonfigurasi Milvus dengan Milvus Operator untuk detail tentang memperbarui konfigurasi Milvus.

Opsi C: Pulsar/Kafka Eksternal

Jika Anda menggunakan layanan Pulsar atau Kafka eksternal, Anda tidak perlu mengubah mqType. Cukup tambahkan konfigurasi akses MQ eksternal ke values.yaml dan mulai ulang instans Milvus untuk merender konfigurasi.

Langkah 3: Jalankan sakelar MQ

Jalankan perintah berikut untuk memicu peralihan ke Pulsar (ganti pulsar dengan kafka jika beralih ke Kafka):

curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "pulsar"}'

Ganti <mixcoord_addr> dengan alamat sebenarnya dari layanan MixCoord Anda.

Langkah 4: Verifikasi peralihan telah selesai

Proses peralihan selesai secara otomatis. Pantau log Milvus untuk pesan-pesan kunci berikut ini untuk mengonfirmasi bahwa peralihan telah selesai:

WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd

Pada pesan log di atas, <MQ1> adalah jenis MQ sumber (woodpecker), dan <MQ2> adalah jenis MQ target (mis., pulsar atau kafka).

  • Pesan pertama menunjukkan bahwa peralihan WAL dari sumber ke target telah selesai.
  • Pesan kedua menunjukkan bahwa semua saluran fisik telah dialihkan.
  • Pesan ketiga menunjukkan bahwa konfigurasi mq.type telah diupdate di etcd.