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

Configurar o armazenamento de mensagens com o Docker Compose ou o Helm

O Milvus utiliza uma fila de mensagens para gerir registos de alterações recentes, emitir registos de fluxo e disponibilizar subscrições de registos. A partir da versão 3.0.x do Milvus, o Woodpecker é a fila de mensagens predefinida recomendada; este tópico explica como configurar o Pulsar ou o Kafka com o Docker Compose ou o Helm.

Pode configurar o Pulsar com o Docker Compose ou no K8s e configurar o Kafka no K8s.

Limitações da fila de mensagens: Ao atualizar para o Milvus v3.0.0, deve manter a sua escolha atual de fila de mensagens. A mudança entre diferentes sistemas de filas de mensagens durante a atualização não é suportada. O suporte à mudança de sistemas de filas de mensagens estará disponível em versões futuras.

Configurar o Pulsar com o Docker Compose

1. Configurar o Pulsar

Para configurar o Pulsar com o Docker Compose, forneça os seus valores para a secção « pulsar » no ficheiro « 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 as configurações relacionadas com o Pulsar para obter mais informações.

2. Executar o Milvus

Execute o seguinte comando para iniciar o Milvus utilizando as configurações do Pulsar.

docker compose up
As configurações só entram em vigor após o arranque do Milvus. Consulte «Arranque do Milvus» para obter mais informações.

Configurar o Pulsar com o Helm

Para clusters do Milvus no K8s, pode configurar o Pulsar no mesmo comando que inicia o Milvus. Em alternativa, pode configurar o Pulsar utilizando o ficheiro « values.yml » no caminho «/charts/milvus» no repositório «milvus-helm» antes de iniciar o Milvus.

Para obter detalhes sobre como configurar o Milvus utilizando o Helm, consulte «Configurar o Milvus com os Charts do Helm». Para obter detalhes sobre os itens de configuração relacionados com o Pulsar, consulte «Configurações relacionadas com o Pulsar». |

Utilizar o ficheiro 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. Após configurar as secções anteriores e guardar o ficheiro ` values.yaml `, execute o comando seguinte para instalar o Milvus utilizando 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 no K8s, pode configurar o Woodpecker no mesmo comando que inicia o Milvus. Em alternativa, pode configurar o Woodpecker utilizando o ficheiro values.yml no caminho /charts/milvus no repositório milvus-helm antes de iniciar o Milvus.

Para obter detalhes sobre como configurar o Milvus utilizando o Helm, consulte «Configurar o Milvus com Helm Charts». Para obter detalhes sobre os itens de configuração relacionados com o Woodpecker, consulte «Configurações relacionadas com o Woodpecker». |

Utilizar o ficheiro YAML

  1. Configure a secção externalConfigFiles no ficheiro 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 number of flush retries.
          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. Após configurar as secções anteriores e guardar o ficheiro « values.yaml », execute o comando seguinte para instalar o Milvus utilizando 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, pode configurar o Kafka no mesmo comando que inicia o Milvus. Em alternativa, pode configurar o Kafka utilizando o ficheiro values.yml no caminho /charts/milvus no repositório milvus-helm antes de iniciar o Milvus.

Para obter detalhes sobre como configurar o Milvus utilizando o Helm, consulte «Configurar o Milvus com os Charts do Helm». Para obter detalhes sobre os itens de configuração relacionados com o Pulsar, consulte «Configurações relacionadas com o Pulsar».

Utilizar o ficheiro 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. Após configurar as secções anteriores e guardar o ficheiro « values.yaml », execute o comando seguinte para instalar o Milvus utilizando as configurações do Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurar o RocksMQ com o Helm

O RocksMQ era o armazenamento de mensagens predefinido no Milvus autónomo até à versão 2.5.x; a partir da versão 2.6.x, o predefinido é o Woodpecker. Para obter instruções detalhadas sobre como configurar o Milvus com o Helm, consulte «Configurar o Milvus com os gráficos do Helm». Para obter detalhes sobre os itens de configuração relacionados com o RocksMQ, consulte «Configurações relacionadas com o RocksMQ».

  • Se iniciar o Milvus com o RocksMQ e pretender alterar as suas definições, pode executar « helm upgrade -f » com as definições alteradas no ficheiro YAML seguinte.

  • Se tiver instalado o Milvus de forma autónoma utilizando o Helm com um armazenamento de mensagens diferente do RocksMQ e pretender voltar a utilizar o RocksMQ, execute ` helm upgrade -f ` com o seguinte ficheiro YAML após ter esvaziado 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 pretender fazê-lo, interrompa todas as operações DDL, chame a API FlushAll para esvaziar todas as coleções e, por fim, pare o Milvus antes de efetivamente alterar o armazenamento de mensagens.

Próximos passos

Saiba como configurar outras dependências do Milvus com o Docker Compose ou o Helm: