메시지 큐 전환 (Switch Message Queue)
이 가이드에서는 기존 Milvus 배포 환경의 메시지 큐(MQ)를 Woodpecker와 다른 메시지 큐 사이에서 온라인 상태 그대로, 다운타임 없이 전환하는 방법을 설명해요.
이 기능은 릴리스 예정이며 변경될 수 있어요. 사용해 보거나 궁금한 점이 있으면 Milvus 지원팀에 문의해 주세요.
출처: Milvus 문서
본문
사전 요구 사항 (Prerequisites)
- Switch MQ 기능은 Milvus 3.0 이상에서 사용할 수 있어요. 사용하기 전에 Milvus 인스턴스를 Milvus 3.0 이상으로 업그레이드해야 해요. 이전 버전에서는 사용할 수 없어요.
- 인스턴스가 정상적으로 실행되고 있어야 해요.
범위 (Scope)
이 가이드는 Woodpecker와 다른 메시지 큐 사이의 전환만 다루어요. Pulsar와 Kafka 사이의 직접 전환은 범위에 포함되지 않아요.
- RocksMQ와 Woodpecker 사이 전환 — Milvus Standalone (Docker Compose)
- Pulsar와 Woodpecker 사이 전환 — Milvus cluster (Helm / Milvus Operator)
- Kafka와 Woodpecker 사이 전환 — Milvus cluster (Helm / Milvus Operator)
일반적인 작업 흐름 (General workflow)
- Milvus 인스턴스가 정상적으로 실행되는지 확인해요.
- 소스 MQ 타입과 대상 MQ 타입을 확인해요.
mqType값을 변경하지 않은 채 대상 MQ의 접근 설정을 Milvus 설정에 반영해요.- MixCoord에서 WAL alter API를 호출해 전환을 트리거해요.
- 로그를 모니터링해 전환이 완료됐는지 확인해요.
전환 전에 대상 MQ에 현재 Milvus 인스턴스가 사용하는 토픽과 같은 이름의 토픽이 없는지 확인해야 해요. 특히 대상 MQ를 다른 Milvus 인스턴스가 사용한 적 있다면 더 중요해요. 토픽 이름이 충돌하면 예상치 못한 동작이 발생할 수 있어요.
지원 매트릭스 (Support matrix)
| 소스 MQ | 대상 MQ | 배포 방식 | 상태 | |
|---|---|---|---|---|
| RocksMQ | Woodpecker (local/MinIO) | Standalone (Docker Compose) | Supported | |
| Woodpecker (local/MinIO) | RocksMQ | Standalone (Docker Compose) | Supported | |
| Pulsar (builtin/external) | Woodpecker (MinIO) | Cluster (Helm / Operator) | Supported | |
| Woodpecker (MinIO) | Pulsar (external) | Cluster (Helm / Operator) | Supported | |
| Kafka (builtin/external) | Woodpecker (MinIO) | Cluster (Helm / Operator) | Supported | |
| Woodpecker (MinIO) | Kafka (external) | Cluster (Helm / Operator) | Supported | |
| Woodpecker MinIO | Woodpecker local (또는 반대) | any | Not supported |
MQ 타입을 반복해서 앞뒤로 전환하는 것은 피해야 해요. 반드시 전환해야 한다면 전환할 때마다 관련 데이터를 먼저 정리하세요. 잔여 데이터는 예상치 못한 동작을 일으킬 수 있어요.