RocksMQ와 Woodpecker 간 전환
이 페이지에서는 Milvus Standalone(Docker Compose) 배포 환경의 메시지 큐(MQ)를 RocksMQ와 Woodpecker (로컬 또는 MinIO 백엔드) 간에 양방향으로 전환하는 방법을 설명합니다. 일반적인 워크플로우 및 필수 조건에 대해서는 '메시지 큐 전환'을 참조하십시오.
- 필수 조건: MQ 전환 기능은 Milvus 3.0 이상 버전에서 사용할 수 있습니다. 시작하기 전에 Milvus 인스턴스를 Milvus 3.0 이상으로 업그레이드하십시오. 이전 버전에서는 이 기능을 사용할 수 없습니다.
- MQ 전환을 위해서는 Docker Compose 배포 환경(etcd 구성 소스를 활성화하는 환경)이 필요합니다. 단일 컨테이너 Docker 배포 환경에서는 전환을 지원하지 않습니다.
RocksMQ에서 Woodpecker로 전환
1단계: Milvus 인스턴스가 실행 중인지 확인
Milvus Standalone Docker Compose 인스턴스가 정상적으로 실행 중인지 확인하십시오. 예를 들어, 테스트 컬렉션을 생성하고, 데이터를 삽입하고, 쿼리를 실행해 볼 수 있습니다.
2단계: Woodpecker 스토리지 구성
mqType 값을 변경하지 않은 상태에서 Milvus 구성에 Woodpecker 설정을 추가합니다. ` docker exec -it milvus-standalone bash ` 명령을 실행하여 컨테이너에 진입한 후, ` /milvus/configs/user.yaml` 파일을 편집합니다:
woodpecker:
storage:
type: minio # minio or local
구성을 적용하려면 Milvus 인스턴스를 재시작하십시오:
docker compose restart
3단계: MQ 전환 실행
Woodpecker로 처음 전환하는 경우 이 참고 사항을 건너뛰십시오. 그렇지 않은 경우, 다시 전환하기 전에 잔여 Woodpecker 메타데이터와 데이터를 정리하십시오. 잔여 데이터로 인해 예기치 않은 동작이 발생할 수 있습니다.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
MixCoord 포트는 일반적으로 9091 입니다.
4단계: 전환 완료 확인
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
전환이 성공하면 [mqTypeValue=woodpecker] 로 기록됩니다.
5단계: (선택 사항) RocksMQ 데이터 정리
RocksMQ 데이터는 docker-compose.yaml 에 정의된 volumes/milvus/rdb_data 및 volumes/milvus/rdb_data_meta_kv 디렉터리에 있습니다. 나중에 다시 RocksMQ로 전환할 계획이라면, 충돌을 방지하기 위해 먼저 이 파일들을 정리하십시오.
Woodpecker에서 RocksMQ로 전환
1단계: Milvus 인스턴스가 실행 중인지 확인
Milvus Standalone Docker Compose 인스턴스가 정상적으로 실행 중인지 확인하십시오.
2단계: MQ 전환 실행
인스턴스에 이전 실행 시 남아 있는 RocksMQ 데이터가 없는지 확인하십시오. RocksMQ로 처음 전환하는 경우 이 참고 사항을 건너뛰고, 그렇지 않은 경우 먼저 관련 RocksMQ 메타데이터와 데이터를 정리하십시오.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "rocksmq"}'
3단계: 전환이 완료되었는지 확인
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
전환이 성공하면 [mqTypeValue=rocksmq] 로깅됩니다.
4단계: (선택 사항) Woodpecker 데이터 정리
- 메타데이터(etcd): Woodpecker 키 접두사는 일반적으로
woodpecker/...입니다.etcdctl get woodpecker --prefix명령어로 확인한 후 삭제하십시오. - 저장소 데이터: MinIO 모드에서는 버킷 내
<rootPath>/wp/...(일반적으로files/wp/...) 아래의 로그 데이터를 삭제하십시오. 로컬 모드에서는 데이터가 로컬 디스크의volumes/milvus/data/wp/...에 있습니다.
나중에 Woodpecker로 다시 전환할 계획이라면, 충돌을 방지하기 위해 먼저 이러한 파일을 정리하십시오.
지원되는 시나리오
| 소스 MQ | 대상 MQ | 상태 | 비고 |
|---|---|---|---|
| RocksMQ | Woodpecker (MinIO/로컬) | 지원됨 | |
| Woodpecker (MinIO/로컬) | RocksMQ | 지원됨 | |
| Woodpecker MinIO | Woodpecker 로컬 | 지원되지 않음 | Woodpecker 스토리지 모드 간 전환에는 추가적인 메타데이터 처리가 필요하지만, 이는 아직 지원되지 않습니다. |
| Woodpecker 로컬 | Woodpecker MinIO | 지원되지 않음 | 위와 동일합니다. |
| RocksMQ / Woodpecker | 외부 Pulsar / Kafka | 지원되지만 권장하지 않음 | 독립 실행형 인스턴스는 가능한 한 단순하게 유지하십시오. |