• Sobre Milvus
  • Começar a trabalhar
  • Conceitos
  • Guia do utilizador
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • FAQs
  • API Reference

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
As configurações só têm efeito depois que o Milvus é iniciado. Consulte Iniciar o Milvus para obter mais informações.

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

  1. Configure a secção externalConfigFiles no ficheiro values.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    
  1. 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

  1. Configure a seção externalConfigFiles no arquivo values.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.    
  1. 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

  1. Configure a secção externalConfigFiles no ficheiro values.yaml se 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    
  1. 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 -f com 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 -f com 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: