跳到主要内容
版本:v3.0.x

Switch Message Queue

本指南介绍如何在现有 Milvus 部署中,在线且无停机地将消息队列 (MQ) 在 Woodpecker 与另一种消息队列之间 切换。

此功能尚待发布,可能会发生变化。如果你想试用或有任何问题,请联系 Milvus 支持团队。

Prerequisites

  • Switch MQ 功能在 Milvus 3.0 及以上版本中可用。 使用前,请先将 Milvus 实例升级到 Milvus 3.0 或以上版本;早期版本不支持该功能。
  • 实例正在正常运行。

Scope

本指南仅涵盖 Woodpecker 与其他消息队列之间 的切换。不涉及 Pulsar 与 Kafka 之间的直接切换。

General workflow

  1. 确保 Milvus 实例正常运行。
  2. 确认源 MQ 类型和目标 MQ 类型。
  3. 将目标 MQ 的访问设置渲染到 Milvus 配置中,但不要更改 mqType 的值。
  4. 调用 MixCoord 上的 WAL alter API 触发切换。
  5. 监控日志,确认切换已完成。

切换前,请确保目标 MQ 中不存在与当前 Milvus 实例所使用的 topic 同名的 topic。如果目标 MQ 曾被其他 Milvus 实例使用,这一点尤其重要,因为 topic 名称冲突可能导致非预期行为。

Support matrix

Source MQTarget MQDeploymentStatus
RocksMQWoodpecker(local/MinIO)Standalone(Docker Compose)支持
Woodpecker(local/MinIO)RocksMQStandalone(Docker Compose)支持
Pulsar(builtin/external)Woodpecker(MinIO)Cluster(Helm / Operator)支持
Woodpecker(MinIO)Pulsar(external)Cluster(Helm / Operator)支持
Kafka(builtin/external)Woodpecker(MinIO)Cluster(Helm / Operator)支持
Woodpecker(MinIO)Kafka(external)Cluster(Helm / Operator)支持
Woodpecker MinIOWoodpecker local(或反向切换)any不支持

避免反复来回切换 MQ 类型。如果确实需要切换,请确保在每次切换前清理相关数据;残留数据可能导致非预期行为。