切換 Milvus 集群的 MQ 類型
本主題描述如何切換現有 Milvus 集群部署的訊息佇列 (MQ) 類型。Milvus 支援在 Pulsar、Kafka 和 Woodpecker 之間進行線上 MQ 切換,而無需停機。
此功能尚待釋出,可能會有所變更。如果您想試用或有任何問題,請聯絡 Milvus 支援。
先決條件
從 Pulsar/Kafka 切換到 Woodpecker (MinIO)
按照以下步驟,將 MQ 類型從 Pulsar 或 Kafka 切換到使用 MinIO 儲存的 Woodpecker。
步驟 1:確認 Milvus 實例正在運行
在切換之前,請確保您的 Milvus 集群實例運行正常。您可以透過建立測試集合、插入資料並執行查詢來驗證。
步驟 2:(可選)驗證啄木鳥配置
預設的 Milvus 配置已經將 Woodpecker 儲存類型設定為 MinIO,因此在大多數情況下不需要額外的配置。
但是,如果您之前自訂了 Woodpecker 配置,則必須確保woodpecker.storage.type 設定為minio 。更新 Milvus 配置時,請勿變更mqType 值:
woodpecker:
storage:
type: minio
- 對於Helm,請參閱使用 Helm Charts 配置 Milvus,以取得更新組態的指示。
- 對於Milvus Operator,請參閱使用 Milvus Operator 配置 Milvus,以獲得更新配置的指示。
步驟 3:執行 MQ 切換
執行下列指令以觸發切換至 Woodpecker:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
將<mixcoord_addr> 改為您 MixCoord 服務的實際位址。
步驟 4:驗證切換完成
切換過程自動完成。監控 Milvus 日誌中的下列關鍵訊息,以確認切換已完成:
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
在上面的日誌訊息中,<MQ1> 是來源 MQ 類型 (例如pulsar 或kafka),而<MQ2> 是目標 MQ 類型 (woodpecker)。
- 第一條訊息表示從原始碼到目標的 WAL 切換已經完成。
- 第二條訊息表示所有實體通道已切換完成。
- 第三條訊息表示
mq.type設定已在 etcd 中更新。
從 Woodpecker (MinIO) 切換到 Pulsar 或 Kafka
按照以下步驟將 MQ 類型從 Woodpecker 切換回 Pulsar 或 Kafka。
步驟 1: 確認 Milvus 實例正在執行中
在切換之前,確保您的 Milvus 集群實例正常運行。
步驟 2:配置目標 MQ
在觸發切換前,您需要確保目標 MQ 服務(Pulsar 或 Kafka)可用,且其存取配置已呈現於 Milvus 配置中。
本節中的具體步驟取決於您使用的是內部(捆綁式)還是外部 MQ 服務。
選項 A:內部 Pulsar/Kafka(與 Helm 綁定)
如果您使用的是 Helm 部署的捆绑 Pulsar 或 Kafka,请更新您的 Helm 版本以启用目标 MQ 服务并禁用 Woodpecker。streaming.enabled=true 標誌是啟用 Streaming Node 的必要條件,而 Streaming Node 是 Switch MQ 功能的先決條件。例如,要切換到 Pulsar:
helm upgrade -i my-release milvus/milvus \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
-f values.yaml
升級後,驗證目標 MQ 存取組態是否已呈現成 Milvus 組態。例如,為 Pulsar
pulsar:
address: <pulsar-proxy-address>
port: 6650
選項 B:內部 Pulsar/Kafka(由 Milvus Operator 管理)
如果您使用 Milvus Operator,請更新 Milvus 自訂資源以包含目標 MQ 存取配置。有關更新 Milvus 配置的詳細資訊,請參閱使用MilvusOperator配置 Milvus。
選項 C:外部 Pulsar/Kafka
如果您使用外部 Pulsar 或 Kafka 服務,您不需要更改mqType 。只需將外部 MQ 存取配置添加到values.yaml ,並重新啟動 Milvus 實例以呈現配置。
步驟 3:執行 MQ 切換
執行以下指令來觸發切換到 Pulsar (如果切換到 Kafka,請將pulsar 改為kafka ):
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "pulsar"}'
將<mixcoord_addr> 改為您 MixCoord 服務的實際位址。
步驟 4:驗證切換完成
切換過程會自動完成。監控 Milvus 日誌中的下列關鍵訊息,以確認切換已完成:
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
在上面的日誌訊息中,<MQ1> 是來源 MQ 類型 (woodpecker),而<MQ2> 是目標 MQ 類型 (例如pulsar 或kafka)。
- 第一條訊息表示從原始碼到目標的 WAL 切換已經完成。
- 第二條訊息表示所有實體通道已切換完成。
- 第三條訊息表示
mq.type配置已在 etcd 中更新。