Configurar o armazenamento de mensagens com Docker Compose ou Helm
O Milvus usa Pulsar ou Kafka para gerenciar logs de mudanças recentes, gerar logs de fluxo e fornecer assinaturas de log. O Pulsar é o sistema de armazenamento de mensagens padrão. Este tópico apresenta como configurar o armazenamento de mensagens com o Docker Compose ou Helm.
É possível configurar o Pulsar com o Docker Com pose ou no K8s e configurar o Kafka no K8s.
Limitações da fila de mensagens: Ao atualizar para o Milvus v2.6.15, você deve manter sua escolha atual de fila de mensagens. Não é possível alternar entre diferentes sistemas de filas de mensagens durante a atualização. O suporte para alterar os sistemas de filas de mensagens estará disponível em versões futuras.
Configurar a Pulsar com o Docker Compose
1. Configurar a Pulsar
Para configurar o Pulsar com o Docker Compose, forneça seus valores para a seção pulsar no arquivo milvus.yaml no caminho milvus/configs.
pulsar:
address: localhost # Address of pulsar
port: 6650 # Port of pulsar
maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
Consulte Configurações relacionadas ao Pulsar para obter mais informações.
2. Executar o Milvus
Execute o seguinte comando para iniciar o Milvus que usa as configurações do Pulsar.
docker compose up
Configurar o Pulsar com o Helm
Para clusters Milvus em K8s, você pode configurar a Pulsar no mesmo comando que inicia o Milvus. Alternativamente, você pode configurar o Pulsar usando o arquivo values.yml no caminho /charts/milvus no repositório milvus-helm antes de iniciar o Milvus.
Para obter detalhes sobre como configurar o Milvus usando o Helm, consulte Configurar o Milvus com Helm Charts. Para obter detalhes sobre os itens de configuração relacionados ao Pulsar, consulte Configurações relacionadas ao Pulsar.
Usando o arquivo YAML
- Configure a secção
externalConfigFilesno ficheirovalues.yaml.
extraConfigFiles:
user.yaml: |+
pulsar:
address: localhost # Address of pulsar
port: 6650 # Port of Pulsar
webport: 80 # Web port of pulsar, if you connect direcly without proxy, should use 8080
maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
tenant: public
namespace: default
- Depois de configurar as seções anteriores e salvar o arquivo
values.yaml, execute o seguinte comando para instalar o Milvus que usa as configurações do Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar o Woodpecker com o Helm
Para clusters do Milvus em K8s, é possível configurar o Woodpecker no mesmo comando que inicia o Milvus. Como alternativa, é possível configurar o Woodpecker usando o arquivo values.yml no caminho /charts/milvus no repositório milvus-helm antes de iniciar o Milvus.
Para obter detalhes sobre como configurar o Milvus usando o Helm, consulte Configurar o Milvus com Helm Charts. Para obter detalhes sobre os itens de configuração relacionados ao Woodpecker, consulte Configurações relacionadas ao Woodpecker.
Usando o arquivo YAML
- Configure a seção
externalConfigFilesno arquivovalues.yaml.
extraConfigFiles:
user.yaml: |+
woodpecker:
meta:
type: etcd # The Type of the metadata provider. currently only support etcd.
prefix: woodpecker # The Prefix of the metadata provider. default is woodpecker.
client:
segmentAppend:
queueSize: 10000 # The size of the queue for pending messages to be sent of each log.
maxRetries: 3 # Maximum number of retries for segment append operations.
segmentRollingPolicy:
maxSize: 256M # Maximum size of a segment.
maxInterval: 10m # Maximum interval between two segments, default is 10 minutes.
maxBlocks: 1000 # Maximum number of blocks in a segment
auditor:
maxInterval: 10s # Maximum interval between two auditing operations, default is 10 seconds.
logstore:
segmentSyncPolicy:
maxInterval: 200ms # Maximum interval between two sync operations, default is 200 milliseconds.
maxIntervalForLocalStorage: 10ms # Maximum interval between two sync operations local storage backend, default is 10 milliseconds.
maxBytes: 256M # Maximum size of write buffer in bytes.
maxEntries: 10000 # Maximum entries number of write buffer.
maxFlushRetries: 5 # Maximum size of write buffer in bytes.
retryInterval: 1000ms # Maximum interval between two retries. default is 1000 milliseconds.
maxFlushSize: 2M # Maximum size of a fragment in bytes to flush.
maxFlushThreads: 32 # Maximum number of threads to flush data
segmentCompactionPolicy:
maxSize: 2M # The maximum size of the merged files.
maxParallelUploads: 4 # The maximum number of parallel upload threads for compaction.
maxParallelReads: 8 # The maximum number of parallel read threads for compaction.
segmentReadPolicy:
maxBatchSize: 16M # Maximum size of a batch in bytes.
maxFetchThreads: 32 # Maximum number of threads to fetch data.
storage:
type: minio # The Type of the storage provider. Valid values: [minio, local]
rootPath: /var/lib/milvus/woodpecker # The root path of the storage provider.
- Depois de configurar as secções anteriores e guardar o ficheiro
values.yaml, execute o seguinte comando para instalar o Milvus que utiliza as configurações do Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar o Kafka com o Helm
Para clusters do Milvus no K8s, é possível configurar o Kafka no mesmo comando que inicia o Milvus. Como alternativa, é possível configurar o Kafka usando o arquivo values.yml no caminho /charts/milvus no repositório milvus-helm antes de iniciar o Milvus.
Para obter detalhes sobre como configurar o Milvus usando o Helm, consulte Configurar o Milvus com Helm Charts. Para obter detalhes sobre os itens de configuração relacionados ao Pulsar, consulte Configurações relacionadas ao Pulsar.
Usando o arquivo YAML
- Configure a secção
externalConfigFilesno ficheirovalues.yamlse pretender utilizar o Kafka como sistema de armazenamento de mensagens.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- Depois de configurar as seções anteriores e salvar o arquivo
values.yaml, execute o seguinte comando para instalar o Milvus que usa as configurações do Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar o RocksMQ com o Helm
O Milvus standalone usa o RocksMQ como armazenamento de mensagens padrão. Para obter etapas detalhadas sobre como configurar o Milvus com o Helm, consulte Configurar o Milvus com gráficos do Helm. Para obter detalhes sobre os itens de configuração relacionados ao RocksMQ, consulte Configurações relacionadas ao RocksMQ.
Se você iniciar o Milvus com o RocksMQ e quiser alterar suas configurações, poderá executar
helm upgrade -fcom as configurações alteradas no seguinte arquivo YAML.Se tiver instalado o Milvus standalone usando o Helm com um armazenamento de mensagens diferente do RocksMQ e quiser alterá-lo de volta para o RocksMQ, execute
helm upgrade -fcom o seguinte arquivo YAML depois de ter liberado todas as coleções e parado o Milvus.
extraConfigFiles:
user.yaml: |+
rocksmq:
# The path where the message is stored in rocksmq
# please adjust in embedded Milvus: /tmp/milvus/rdb_data
path: /var/lib/milvus/rdb_data
lrucacheratio: 0.06 # rocksdb cache memory ratio
rocksmqPageSize: 67108864 # 64 MB, 64 * 1024 * 1024 bytes, The size of each page of messages in rocksmq
retentionTimeInMinutes: 4320 # 3 days, 3 * 24 * 60 minutes, The retention time of the message in rocksmq.
retentionSizeInMB: 8192 # 8 GB, 8 * 1024 MB, The retention size of the message in rocksmq.
compactionInterval: 86400 # 1 day, trigger rocksdb compaction every day to remove deleted data
# compaction compression type, only support use 0,7.
# 0 means not compress, 7 will use zstd
# len of types means num of rocksdb level.
compressionTypes: [0, 0, 7, 7, 7]
Não é recomendável alterar o armazenamento de mensagens. Se quiser fazer isso, interrompa todas as operações DDL e, em seguida, chame a API FlushAll para liberar todas as coleções e, finalmente, interrompa o Milvus no final, antes de alterar o armazenamento de mensagens.
O que vem a seguir
Saiba como configurar outras dependências do Milvus com o Docker Compose ou o Helm: