MilvusのメッセージキューとしてRocksMQを使用する
RocksMQは、Milvusにバンドルされている組み込みメッセージキュー(WAL)であり、Milvus Standaloneでのみ利用可能です。以前のMilvusバージョンでは、これがデフォルトのスタンドアロン用メッセージキューでしたが、Milvus 3.xでは、Milvus Standaloneはデフォルトで組み込みのWoodpeckerを使用します。
バージョンの互換性
- スタンドアロンのみ— Milvus Distributed(クラスタ)ではRocksMQはサポートされていません。メッセージキューのサポートマトリックスを参照してください。
- RocksMQはMilvusに同梱されているため、別途インストールする必要はありません。
- 以前のMilvusバージョンでは、これがスタンドアロン環境のデフォルトのメッセージキューでしたが、Milvus 3.xでは組み込み型のWoodpeckerに置き換えられました。
Docker を使用して RocksMQ と共に Milvus Standalone をデプロイする
インストール
「DockerでMilvusを実行する」の手順に従ってください。Milvus 3.xではスタンドアロンのデフォルトはWoodpeckerであるため、メッセージキューのタイプを明示的にRocksMQに切り替えてください。ブートストラップスクリプトは、最初の start 時に新しいuser.yaml を作成するため、その初回起動後にタイプを設定し、restart を実行して適用してください(restart を実行するとuser.yaml が保持されます):
mkdir milvus-rocksmq && cd milvus-rocksmq
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
# 1. First start — boots the container and writes a default user.yaml
bash standalone_embed.sh start
# 2. Set the message queue to RocksMQ
cat > user.yaml <<'EOF'
mq:
type: rocksmq
EOF
# 3. Restart to apply the change
bash standalone_embed.sh restart
この方法で
mq.type を切り替えるのは、まったく新しいインスタンス(まだコレクションが存在しない状態)を対象としています。すでにデータを保持しているインスタンスのメッセージキューを変更する場合は、代わりにswitch手順に従ってください。
設定
RocksMQ を調整するには、user.yaml にrocksmq セクションを追加し、サービスを再起動してください:
mq:
type: rocksmq
rocksmq:
path: /var/lib/milvus/rdb_data # where messages are stored
lrucacheratio: 0.06 # rocksdb cache memory ratio
rocksmqPageSize: 67108864 # 64 MB, size of each message page
retentionTimeInMinutes: 4320 # 3 days
retentionSizeInMB: 8192 # 8 GB
compactionInterval: 86400 # 1 day, trigger rocksdb compaction
compressionTypes: [0, 0, 7, 7, 7]
bash standalone_embed.sh restart
アンインストール
bash standalone_embed.sh stop
bash standalone_embed.sh delete
注意事項
- 2.5.x から 2.6.x へのアップグレード: メッセージキューの制限事項: Milvus v3.0.0 へアップグレードする際は、現在のメッセージキューの選択を維持する必要があります。アップグレード中に異なるメッセージキューシステム間で切り替えることはサポートされていません。メッセージキューシステムの変更機能は、将来のバージョンで提供される予定です。
2.6.x ではスタンドアロンのデフォルトが Woodpecker に変更されるため、RocksMQ を継続して使用したい場合は、アップグレード前に`
user.yaml` 内の `mq.type: rocksmq` を固定してください。 - 実行中のインスタンスのメッセージキューを変更するには、「RocksMQ から Woodpecker への切り替え」を参照してください。