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_datavolumes/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상태비고
RocksMQWoodpecker (MinIO/로컬)지원됨
Woodpecker (MinIO/로컬)RocksMQ지원됨
Woodpecker MinIOWoodpecker 로컬지원되지 않음Woodpecker 스토리지 모드 간 전환에는 추가적인 메타데이터 처리가 필요하지만, 이는 아직 지원되지 않습니다.
Woodpecker 로컬Woodpecker MinIO지원되지 않음위와 동일합니다.
RocksMQ / Woodpecker외부 Pulsar / Kafka지원되지만 권장하지 않음독립 실행형 인스턴스는 가능한 한 단순하게 유지하십시오.