Beralih antara RocksMQ dan Woodpecker

Halaman ini menjelaskan cara beralih antrian pesan (MQ) pada deployment Milvus Standalone (Docker Compose) antara RocksMQ dan Woodpecker (backend lokal atau MinIO), baik ke arah mana pun. Untuk alur kerja umum dan prasyarat, lihat Beralih Antrian Pesan.

  • Prasyarat: Fitur Beralih MQ tersedia di Milvus 3.0 dan versi yang lebih baru. Tingkatkan instance Milvus Anda ke Milvus 3.0 atau versi yang lebih baru sebelum memulai — fitur ini tidak tersedia pada versi sebelumnya.
  • Pengalihan MQ memerlukan penyebaran Docker Compose (yang mengaktifkan sumber konfigurasi etcd). Penyebaran Docker satu kontainer tidak mendukung pengalihan.

Beralih dari RocksMQ ke Woodpecker

Langkah 1: Pastikan instance Milvus sedang berjalan

Pastikan instance Milvus Standalone Docker Compose Anda berjalan dengan baik — misalnya, dengan membuat koleksi uji, memasukkan data, dan menjalankan kueri.

Langkah 2: Konfigurasikan penyimpanan Woodpecker

Tambahkan pengaturan Woodpecker ke konfigurasi Milvus tanpa mengubah nilai ` mqType `. Jalankan perintah ` docker exec -it milvus-standalone bash ` untuk masuk ke dalam kontainer, lalu edit berkas ` /milvus/configs/user.yaml`:

woodpecker:
  storage:
    type: minio   # minio or local

Mulai ulang instance Milvus untuk menerapkan konfigurasi:

docker compose restart

Langkah 3: Jalankan peralihan MQ

Jika ini adalah pertama kalinya Anda beralih ke Woodpecker, abaikan catatan ini. Jika tidak, bersihkan sisa meta dan data Woodpecker sebelum beralih kembali — data sisa dapat menyebabkan perilaku yang tidak terduga.

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

Port MixCoord biasanya 9091.

Langkah 4: Verifikasi bahwa peralihan telah selesai

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

Peralihan yang berhasil akan mencatat [mqTypeValue=woodpecker].

Langkah 5: (Opsional) Bersihkan data RocksMQ

Data RocksMQ berada di direktori volumes/milvus/rdb_data dan volumes/milvus/rdb_data_meta_kv yang didefinisikan di docker-compose.yaml. Jika Anda berencana untuk beralih kembali ke RocksMQ nanti, bersihkan file-file ini terlebih dahulu untuk menghindari konflik.

Beralih dari Woodpecker ke RocksMQ

Langkah 1: Pastikan instance Milvus sedang berjalan

Pastikan instance Milvus Standalone Docker Compose Anda berjalan dengan baik.

Langkah 2: Jalankan proses peralihan MQ

Pastikan instance tidak memiliki sisa data RocksMQ dari eksekusi sebelumnya. Jika ini adalah pertama kalinya Anda beralih ke RocksMQ, abaikan catatan ini; jika tidak, bersihkan terlebih dahulu meta dan data RocksMQ yang terkait.

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

Langkah 3: Pastikan proses peralihan telah selesai

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

Peralihan yang berhasil akan mencatat log " [mqTypeValue=rocksmq]".

Langkah 4: (Opsional) Bersihkan data Woodpecker

  • Metadata (etcd): awalan kunci Woodpecker biasanya adalah woodpecker/.... Lihat dengan perintah ` etcdctl get woodpecker --prefix`, lalu hapus.
  • Data penyimpanan: dalam mode MinIO, hapus data log di bawah <rootPath>/wp/... (biasanya files/wp/...) di bucket; dalam mode lokal, data tersebut berada di disk lokal di volumes/milvus/data/wp/....

Jika Anda berencana untuk kembali ke Woodpecker nanti, bersihkan file-file ini terlebih dahulu untuk menghindari konflik.

Skenario yang didukung

MQ SumberMQ TujuanStatusCatatan
RocksMQWoodpecker (MinIO/lokal)Didukung
Woodpecker (MinIO/lokal)RocksMQDidukung
Woodpecker MinIOWoodpecker lokalTidak didukungBeralih di antara mode penyimpanan Woodpecker memerlukan penanganan metadata tambahan, yang belum didukung.
Woodpecker lokalWoodpecker MinIOTidak didukungSama seperti di atas.
RocksMQ / WoodpeckerPulsar Eksternal / KafkaDidukung tetapi tidak direkomendasikanJaga agar instance mandiri tetap sesederhana mungkin.