消息队列概述
Milvus 依赖消息队列(预写日志,WAL)来管理最近的变更日志、输出流日志,并提供日志订阅功能。在 Milvus 3.x中,Woodpecker是默认的消息队列,无需单独的消息传递基础设施。Pulsar、Kafka 和 RocksMQ 仍支持用于特定场景。
支持的消息队列
| 消息队列 | Milvus Standalone | Milvus Distributed(集群) | 默认配置 | 备注 |
|---|---|---|---|---|
| Woodpecker | ✔️(嵌入式) | ✔️(嵌入式或服务) | Milvus 3.x(两种模式均支持) | 默认且推荐。基于对象存储的云原生WAL;无需外部服务。 |
| Pulsar | ✔️ | ✔️ | ≤ 2.5.x(集群默认) | 受支持,可选外部服务或捆绑方案。 |
| Kafka | ✔️ | ✔️ | — | 受支持。仅支持 Kafka 2.x 或 3.x。 |
| RocksMQ | ✔️ | ✖️ | ≤ 2.5.x(独立模式默认) | 仅支持独立模式。 |
每个 Milvus 实例仅使用一个消息队列。
消息队列限制:升级至 Milvus v3.0.0 时,必须保留当前选择的消息队列。升级过程中不支持在不同的消息队列系统之间切换。未来版本将支持更改消息队列系统。
若要更改正在运行的实例的消息队列,请参阅“切换消息队列”。“切换消息队列”功能仅在Milvus 3.0 及更高版本中提供——请先升级至 Milvus 3.0 或更高版本。
选择消息队列
- 新部署(Milvus 3.x):请使用Woodpecker(默认)。独立部署采用嵌入式运行;对于分布式(集群)部署,推荐的默认方案是通过 Helm 部署的专用服务,同时也支持嵌入式运行。
- 现有 Pulsar 或 Kafka 用户:Pulsar 和 Kafka 仍受全面支持。您可以继续使用它们,或切换至 Woodpecker。
- RocksMQ:仅支持独立部署,且已被 Milvus 3.x 中的嵌入式 Woodpecker 取代。