• Über Milvus
  • Erste Schritte
  • Begriffe
  • Benutzerhandbuch
  • Datenimport
  • KI-Tools
  • Administrationshandbuch
  • Werkzeuge
  • Integrationen
  • Anleitungen
  • Häufig gestellte Fragen
  • API Reference

Konfigurieren der Nachrichtenspeicherung mit Docker Compose oder Helm

Milvus verwendet eine Nachrichtenwarteschlange, um Protokolle der letzten Änderungen zu verwalten, Stream-Protokolle auszugeben und Protokollabonnements bereitzustellen. Ab Milvus 3.0.x ist Woodpecker die standardmäßig empfohlene Nachrichtenwarteschlange; in diesem Thema wird erläutert, wie Sie Pulsar oder Kafka mit Docker Compose oder Helm konfigurieren.

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

Einschränkungen bei der Nachrichtenwarteschlange: Beim Upgrade auf Milvus v3.0.3 müssen Sie Ihre aktuelle Wahl der Nachrichtenwarteschlange beibehalten. Ein Wechsel zwischen verschiedenen Nachrichtenwarteschlangensystemen während des Upgrades wird nicht unterstützt. Die Unterstützung für den Wechsel des Nachrichtenwarteschlangensystems wird in zukünftigen Versionen verfügbar sein.

Pulsar mit Docker Compose konfigurieren

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 Verzeichnis „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.

Weitere Informationen finden Sie unter „Pulsar-bezogene Konfigurationen “.

2. Milvus ausführen

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

docker compose up
Die Konfigurationen werden erst nach dem Start von Milvus wirksam. Weitere Informationen finden Sie unter „Milvus starten “.

Pulsar mit Helm konfigurieren

Bei Milvus-Clustern auf K8s können Sie Pulsar im selben Befehl konfigurieren, mit dem Milvus gestartet wird. Alternativ können Sie Pulsar mithilfe der Datei „ values.yml “ im Pfad „/charts/milvus“ im Repository „milvus-helm“ konfigurieren, bevor Sie Milvus starten.

Einzelheiten zur Konfiguration von Milvus mit Helm finden Sie unter „Milvus mit Helm-Charts konfigurieren“. Einzelheiten 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 unter Verwendung der Pulsar-Konfigurationen zu installieren.
helm install <your_release_name> milvus/milvus -f values.yaml

Woodpecker mit Helm konfigurieren

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

Einzelheiten zur Konfiguration von Milvus mit Helm finden Sie unter „Milvus mit Helm-Charts konfigurieren“. Einzelheiten zu den Konfigurationselementen für Woodpecker finden Sie unter „Woodpecker-bezogene Konfigurationen“. |

Verwendung der YAML-Datei

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

Kafka mit Helm konfigurieren

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

Einzelheiten zur Konfiguration von Milvus mit Helm finden Sie unter „Milvus mit Helm-Charts konfigurieren“. Einzelheiten 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 mit den Kafka-Konfigurationen zu installieren.
helm install <your_release_name> milvus/milvus -f values.yaml

RocksMQ mit Helm konfigurieren

RocksMQ war bis zur Version 2.5.x der Standard-Nachrichtenspeicher in Milvus Standalone; ab Version 2.6.x ist Woodpecker der Standard. Ausführliche Anweisungen zur Konfiguration von Milvus mit Helm finden Sie unter „Milvus mit Helm-Charts konfigurieren“. Einzelheiten zu den RocksMQ-bezogenen Konfigurationselementen finden Sie unter „RocksMQ-bezogene Konfigurationen“.

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

  • Wenn Sie Milvus als Standalone-Version mit Helm und einem anderen Nachrichtenspeicher als RocksMQ installiert haben und wieder zu RocksMQ zurückwechseln möchten, führen Sie „ helm upgrade -f “ mit der folgenden YAML-Datei aus, nachdem Sie alle Sammlungen geleert und Milvus angehalten 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]    

Ein Wechsel des Message-Stores wird nicht empfohlen. Wenn Sie dies dennoch tun möchten, stellen Sie zunächst alle DDL-Operationen ein, rufen Sie dann die FlushAll-API auf, um alle Sammlungen zu leeren, und beenden Sie schließlich Milvus, bevor Sie den Message-Store tatsächlich ändern.

Was kommt als Nächstes?

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