Milvus 메시지 큐로 RocksMQ 사용
RocksMQ는 Milvus에 번들로 제공되는 임베디드 메시지 큐(WAL)로, Milvus Standalone에서만 사용할 수 있습니다. 이전 버전의 Milvus에서는 기본 독립형 메시지 큐로 사용되었으나, Milvus 3.x에서는 Milvus Standalone이 기본적으로 임베디드 Woodpecker를 사용합니다.
버전 호환성
- 스탠드얼론 전용 — Milvus Distributed(클러스터)에서는 RocksMQ가 지원 되지 않습니다. 메시지 큐 지원 매트릭스를 참조하십시오.
- RocksMQ는 Milvus에 포함되어 제공되므로 별도로 설치할 버전은 없습니다.
- 이전 Milvus 버전에서는 기본 독립형 메시지 큐로 사용되었으나, Milvus 3.x에서는 내장형 Woodpecker로 대체되었습니다.
Docker를 사용하여 RocksMQ와 함께 Milvus Standalone 배포하기
설치
'Docker에서 Milvus 실행' 안내를 따르십시오. Milvus 3.x에서는 독립 실행형 모드의 기본 메시지 큐가 Woodpecker이므로, 메시지 큐 유형을 명시적으로 RocksMQ로 전환해야 합니다. 부트스트랩 스크립트는 첫 실행 시( start) 새로운 user.yaml 파일을 생성하므로, 첫 실행 후 유형을 설정한 다음 restart 명령을 실행하여 적용하십시오( restart 명령은 user.yaml 파일을 보존합니다):
mkdir milvus-rocksmq && cd milvus-rocksmq
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
# 1. First start — boots the container and writes a default user.yaml
bash standalone_embed.sh start
# 2. Set the message queue to RocksMQ
cat > user.yaml <<'EOF'
mq:
type: rocksmq
EOF
# 3. Restart to apply the change
bash standalone_embed.sh restart
이러한 방식으로
mq.type 를 전환하는 것은 완전히 새로운 인스턴스(아직 컬렉션이 없는 상태)를 위한 것입니다. 이미 데이터를 보유하고 있는 인스턴스의 메시지 큐를 변경하려면 대신 전환 절차를 따르십시오.
구성
RocksMQ를 조정하려면 ` user.yaml ` 파일에 ` rocksmq ` 섹션을 추가하고 서비스를 재시작하십시오:
mq:
type: rocksmq
rocksmq:
path: /var/lib/milvus/rdb_data # where messages are stored
lrucacheratio: 0.06 # rocksdb cache memory ratio
rocksmqPageSize: 67108864 # 64 MB, size of each message page
retentionTimeInMinutes: 4320 # 3 days
retentionSizeInMB: 8192 # 8 GB
compactionInterval: 86400 # 1 day, trigger rocksdb compaction
compressionTypes: [0, 0, 7, 7, 7]
bash standalone_embed.sh restart
제거
bash standalone_embed.sh stop
bash standalone_embed.sh delete
참고
- 2.5.x에서 2.6.x로 업그레이드: 메시지 큐 제한 사항: Milvus v3.0.0으로 업그레이드할 때는 현재 사용 중인 메시지 큐를 유지해야 합니다. 업그레이드 과정에서 다른 메시지 큐 시스템으로 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경 기능은 향후 버전에서 제공될 예정입니다.
2.6.x 버전에서는 독립 실행형 모드의 기본값이 Woodpecker로 변경되므로, RocksMQ를 계속 사용하려면 업그레이드 전에
user.yaml파일에서mq.type: rocksmq를 고정(pin)해야 합니다. - 실행 중인 인스턴스의 메시지 큐를 변경하려면 ‘RocksMQ에서 Woodpecker로 전환’을 참조하십시오.