Message Queue Overview
Milvus 依赖消息队列(write-ahead log,WAL)来管理最近变更的日志、输出流日志,并提供日志订阅。在 Milvus 3.x 中,Woodpecker 是默认消息队列,无需单独的消息基础设施。Pulsar、Kafka 和 RocksMQ 仍然支持用于特定场景。
支持的 Message Queue
| Message queue | Milvus Standalone | Milvus Distributed(cluster) | 默认版本 | 说明 |
|---|---|---|---|---|
| Woodpecker | ✔️(embedded) | ✔️(embedded 或 service) | Milvus 3.x (两种模式) | 默认且推荐使用。基于对象存储的云原生 WAL;无需外部服务。 |
| Pulsar | ✔️ | ✔️ | ≤ 2.5.x(cluster 默认) | 支持,可使用外部服务或内置组件。 |
| Kafka | ✔️ | ✔️ | — | 支持。仅支持 Kafka 2.x 或 3.x。 |
| RocksMQ | ✔️ | ✖️ | ≤ 2.5.x(standalone 默认) | 仅支持 standalone。 |
-
每个 Milvus 实例只能使用一种 Message Queue。
-
Message Queue 限制:升级到 Milvus v3.0.0 时,必须保持当前的 Message Queue 选择。升级期间不支持在不同 Message Queue 系统之间切换。未来版本将支持更改 Message Queue 系统。
-
如需更改运行中实例的 Message Queue,请参阅 Switch Message Queue。Switch MQ 功能适用于 Milvus 3.0 及更高版本,请先升级到 Milvus 3.0 或更高版本。
选择消息队列
- 新部署(Milvus 3.x): 使用 Woodpecker (默认选项)。Standalone 以 embedded 模式运行 Woodpecker;对于 distributed(cluster)部署,推荐默认使用通过 Helm 部署的专用 service,同时也支持 embedded 模式。
- 现有 Pulsar 或 Kafka 用户: Pulsar 和 Kafka 仍然受到完整支持。你可以继续使用它们,也可以 切换到 Woodpecker。
- RocksMQ: 仅支持 standalone,并且在 Milvus 3.x 中已由 embedded Woodpecker 取代。