milvus-logo
LFAI
Home
  • Leitfaden für die Verwaltung
    • Verwalten von Abhängigkeiten

Konfigurieren Sie den Nachrichtenspeicher mit Docker Compose oder Helm

Milvus verwendet Pulsar oder Kafka für die Verwaltung von Protokollen der letzten Änderungen, die Ausgabe von Stream-Protokollen und die Bereitstellung von Protokollabonnements. Pulsar ist das standardmäßige Nachrichtenspeichersystem. In diesem Thema wird beschrieben, wie Sie den Nachrichtenspeicher mit Docker Compose oder Helm konfigurieren.

Sie können Pulsar mit Docker Compose oder auf K8s konfigurieren und Kafka auf K8s konfigurieren.

Konfigurieren von Pulsar mit Docker Compose

1. Pulsar konfigurieren

Um Pulsar mit Docker Compose zu konfigurieren, geben Sie Ihre Werte für den Abschnitt pulsar in der Datei milvus.yaml im Pfad milvus/configs an.

pulsar:
  address: localhost # Address of pulsar
  port: 6650 # Port of pulsar
  maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.

Siehe Pulsar-bezogene Konfigurationen für weitere Informationen.

2. Starten Sie Milvus

Führen Sie den folgenden Befehl aus, um Milvus zu starten, das die Pulsar-Konfigurationen verwendet.

docker compose up
Die Konfigurationen werden erst nach dem Start von Milvus wirksam. Siehe Starten von Milvus für weitere Informationen.

Konfigurieren Sie Pulsar mit Helm

Für Milvus-Cluster auf K8s können Sie Pulsar mit demselben Befehl konfigurieren, mit dem Milvus gestartet wird. Alternativ können Sie Pulsar mit der Datei values.yml im Pfad /charts/milvus im milvus-helm-Repository konfigurieren, bevor Sie Milvus starten.

Einzelheiten zur Konfiguration von Milvus mit Helm finden Sie unter Konfigurieren von Milvus mit Helm Charts. Details zu Pulsar-bezogenen Konfigurationselementen finden Sie unter Pulsar-bezogene Konfigurationen.

Verwendung der YAML-Datei

  1. Konfigurieren Sie den Abschnitt externalConfigFiles in der Datei 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. Nachdem Sie die vorangegangenen Abschnitte konfiguriert und die Datei values.yaml gespeichert haben, führen Sie den folgenden Befehl aus, um Milvus zu installieren, das die Pulsar-Konfigurationen verwendet.
helm install <your_release_name> milvus/milvus -f values.yaml

Konfigurieren Sie Kafka mit Helm

Für Milvus-Cluster auf K8s können Sie Kafka mit demselben Befehl konfigurieren, mit dem Milvus gestartet wird. Alternativ können Sie Kafka mit der Datei values.yml unter dem Pfad /charts/milvus im milvus-helm-Repository konfigurieren, bevor Sie Milvus starten.

Einzelheiten zur Konfiguration von Milvus mit Helm finden Sie unter Konfigurieren von Milvus mit Helm Charts. Details zu Pulsar-bezogenen Konfigurationselementen finden Sie unter Pulsar-bezogene Konfigurationen.

Verwendung der YAML-Datei

  1. Konfigurieren Sie den Abschnitt externalConfigFiles in der Datei values.yaml, wenn Sie Kafka als Nachrichtenspeichersystem verwenden möchten.
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. Nachdem Sie die vorangegangenen Abschnitte konfiguriert und die Datei values.yaml gespeichert haben, führen Sie den folgenden Befehl aus, um Milvus zu installieren, das die Kafka-Konfigurationen verwendet.
helm install <your_release_name> milvus/milvus -f values.yaml

Konfigurieren Sie RocksMQ mit Helm

Milvus Standalone verwendet RocksMQ als Standardnachrichtenspeicher. Detaillierte Schritte zur Konfiguration von Milvus mit Helm finden Sie unter Konfigurieren von Milvus mit Helm-Diagrammen. Einzelheiten zu RocksMQ-bezogenen Konfigurationselementen finden Sie unter RocksMQ-bezogene Konfigurationen.

  • Wenn Sie Milvus mit RocksMQ starten und seine Einstellungen ändern möchten, können Sie helm upgrade -f mit den geänderten Einstellungen in der folgenden YAML-Datei ausführen.

  • Wenn Sie Milvus eigenständig mit Helm mit einem anderen Nachrichtenspeicher als RocksMQ installiert haben und wieder zu RocksMQ wechseln möchten, führen Sie helm upgrade -f mit der folgenden YAML-Datei aus, nachdem Sie alle Sammlungen geleert und Milvus gestoppt haben.

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]    

Das Ändern des Nachrichtenspeichers wird nicht empfohlen. Wenn Sie dies tun möchten, stoppen Sie alle DDL-Vorgänge, rufen Sie dann die FlushAll-API auf, um alle Sammlungen zu flushen, und stoppen Sie schließlich Milvus, bevor Sie den Nachrichtenspeicher tatsächlich ändern.

Konfigurieren Sie NATS mit Helm

NATS ist eine experimentelle Nachrichtenspeicher-Alternative zu RocksMQ. Detaillierte Schritte zur Konfiguration von Milvus mit Helm finden Sie unter Konfigurieren von Milvus mit Helm-Diagrammen. Einzelheiten zu RocksMQ-bezogenen Konfigurationselementen finden Sie unter NATS-bezogene Konfigurationen.

  • Wenn Sie Milvus mit NATS starten und seine Einstellungen ändern möchten, können Sie helm upgrade -f mit den geänderten Einstellungen in der folgenden YAML-Datei ausführen.

  • Wenn Sie Milvus standalone mit einem anderen Nachrichtenspeicher als NATS installiert haben und diesen auf NATS umstellen wollen, führen Sie helm upgrade -f mit der folgenden YAML-Datei aus, nachdem Sie alle Collections geleert und Milvus gestoppt haben.

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: 

Zwischen RocksMQ und NATS wählen?

RockMQ verwendet CGO für die Interaktion mit RocksDB und verwaltet den Speicher selbst, während das in die Milvus-Installation eingebettete reine Go-NATS die Speicherverwaltung an den Garbage Collector (GC) von Go delegiert.

In dem Szenario, in dem das Datenpaket kleiner als 64 kb ist, schneidet RocksDB in Bezug auf Speicherverbrauch, CPU-Nutzung und Antwortzeit besser ab. Ist das Datenpaket hingegen größer als 64 KB, so ist NATS bei ausreichendem Speicher und idealer GC-Planung in Bezug auf die Antwortzeit überlegen.

Derzeit wird empfohlen, NATS nur für Experimente zu verwenden.

Was kommt als nächstes?

Erfahren Sie, wie Sie andere Milvus-Abhängigkeiten mit Docker Compose oder Helm konfigurieren können:

Übersetzt vonDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?