milvus-logo
LFAI
Home
  • Guia de Administração

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.

Configurar a Pulsar com o Docker Compose

1. Configurar o 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 comando a seguir para instalar o Milvus, que usa as configurações do Pulsar.
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. Após 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.

Configurar o NATS com o Helm

O NATS é um armazenamento de mensagens experimental alternativo ao RocksMQ. Para obter etapas detalhadas sobre como configurar o Milvus com o Helm, consulte Configurar o Milvus com Helm Charts. Para obter detalhes sobre os itens de configuração relacionados ao RocksMQ, consulte Configurações relacionadas ao NATS.

  • Se você iniciar o Milvus com NATS 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 com um armazenamento de mensagens diferente do NATS e pretender alterá-lo para o NATS, execute helm upgrade -f com o seguinte ficheiro YAML depois de ter descarregado todas as colecções e parado o Milvus.

extraConfigFiles:
  user.yaml: |+
    mq:
      type: natsmq
    natsmq:
      # server side configuration for natsmq.
      server: 
        # 4222 by default, Port for nats server listening.
        port: 4222 
        # /var/lib/milvus/nats by default, directory to use for JetStream storage of nats.
        storeDir: /var/lib/milvus/nats 
        # (B) 16GB by default, Maximum size of the 'file' storage.
        maxFileStore: 17179869184 
        # (B) 8MB by default, Maximum number of bytes in a message payload.
        maxPayload: 8388608 
        # (B) 64MB by default, Maximum number of bytes buffered for a connection applies to client connections.
        maxPending: 67108864 
        # (√ms) 4s by default, waiting for initialization of natsmq finished.
        initializeTimeout: 4000 
        monitor:
          # false by default, If true enable debug log messages.
          debug: false 
          # true by default, If set to false, log without timestamps.
          logTime: true 
          # no log file by default, Log file path relative to.. .
          logFile: 
          # (B) 0, unlimited by default, Size in bytes after the log file rolls over to a new one.
          logSizeLimit: 0 
        retention:
          # (min) 3 days by default, Maximum age of any message in the P-channel.
          maxAge: 4320 
          # (B) None by default, How many bytes the single P-channel may contain. Removing oldest messages if the P-channel exceeds this size.
          maxBytes:
          # None by default, How many message the single P-channel may contain. Removing oldest messages if the P-channel exceeds this limit.    
          maxMsgs: 

Escolher entre RocksMQ e NATS?

O RockMQ usa o CGO para interagir com o RocksDB e gerencia a memória por si só, enquanto o NATS puro do Go incorporado na instalação do Milvus delega seu gerenciamento de memória ao coletor de lixo (GC) do Go.

No cenário em que o pacote de dados é menor que 64 kb, o RocksDB tem um desempenho melhor em termos de uso de memória, uso de CPU e tempo de resposta. Por outro lado, se o pacote de dados for maior que 64 kb, o NATS se sobressai em termos de tempo de resposta com memória suficiente e agendamento ideal do GC.

Atualmente, aconselha-se a utilização do NATS apenas para experiências.

O que vem a seguir

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

Traduzido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?