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.
Einschränkungen für Nachrichtenwarteschlangen: Wenn Sie auf Milvus v2.6.16 aktualisieren, müssen Sie Ihre aktuelle Wahl der Nachrichtenwarteschlange beibehalten. Der Wechsel zwischen verschiedenen Message-Queue-Systemen während des Upgrades wird nicht unterstützt. Unterstützung für den Wechsel von Message-Queue-Systemen wird in zukünftigen Versionen verfügbar sein.
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
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
- Konfigurieren Sie den Abschnitt
externalConfigFilesin der Dateivalues.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
- Nachdem Sie die vorangegangenen Abschnitte konfiguriert und die Datei
values.yamlgespeichert 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 Woodpecker mit Helm
Für Milvus-Cluster auf K8s können Sie Woodpecker mit demselben Befehl konfigurieren, der Milvus startet. Alternativ können Sie Woodpecker auch 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 Woodpecker-bezogenen Konfigurationselementen finden Sie unter Woodpecker-bezogene Konfigurationen.
Verwendung der YAML-Datei
- Konfigurieren Sie den Abschnitt
externalConfigFilesin der Dateivalues.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.
- Nachdem Sie die vorangegangenen Abschnitte konfiguriert und die Datei
values.yamlgespeichert haben, führen Sie den folgenden Befehl aus, um Milvus zu installieren, das die Woodpecker-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 mithilfe 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
- Konfigurieren Sie den Abschnitt
externalConfigFilesin der Dateivalues.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
- Nachdem Sie die vorangegangenen Abschnitte konfiguriert und die Datei
values.yamlgespeichert 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 -fmit 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 -fmit 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-Operationen, 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.
Was kommt als Nächstes
Erfahren Sie, wie Sie andere Milvus-Abhängigkeiten mit Docker Compose oder Helm konfigurieren können: