使用 Docker Compose 或 Helm 設定訊息儲存空間
Milvus 使用 Pulsar 或 Kafka 來管理最近變更的日誌、輸出串流日誌,以及提供日誌訂閱。Pulsar 是預設的訊息儲存系統。本主題介紹如何使用 Docker Compose 或 Helm 設定訊息儲存。
您可以使用Docker Compose或在 K8s 上設定 Pulsar,並在 K8s 上設定 Kafka。
訊息佇列限制:升級至 Milvus v2.6.16 時,您必須維持目前的訊息佇列選擇。升級期間不支援在不同的訊息佇列系統之間切換。未來版本將支援變更訊息佇列系統。
使用 Docker Compose 設定 Pulsar
1.設定 Pulsar
要使用 Docker Compose 設定 Pulsar,請在 milvus/configs 路徑上的milvus.yaml 檔案中,提供pulsar 部分的值。
pulsar:
address: localhost # Address of pulsar
port: 6650 # Port of pulsar
maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
更多資訊請參閱Pulsar 相關設定。
2.執行 Milvus
執行下列指令啟動使用 Pulsar 設定的 Milvus。
docker compose up
使用 Helm 設定 Pulsar
對於 K8s 上的 Milvus 集群,你可以在啟動 Milvus 的相同指令中設定 Pulsar。另外,你也可以在啟動 Milvus 之前,使用 /charts/milvus 路徑下milvus-helm套件庫中的values.yml 檔來設定 Pulsar。
關於如何使用 Helm設定 Milvus 的詳細資訊,請參考 使用Helm Charts 設定 Milvus。有關 Pulsar 相關組態項目的詳細資訊,請參閱Pulsar 相關組態。
使用 YAML 檔案
- 配置
values.yaml檔案中的externalConfigFiles部分。
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
- 配置前面的部分並儲存
values.yaml檔案後,執行下列指令安裝使用 Pulsar 配置的 Milvus。
helm install <your_release_name> milvus/milvus -f values.yaml
使用 Helm 配置 Woodpecker
對於 K8s 上的 Milvus 集群,您可以在啟動 Milvus 的同一個指令中配置 Woodpecker。另外,您也可以在啟動 Milvus 之前,使用 /charts/milvus 路徑中milvus-helm套件庫的values.yml 檔來設定 Woodpecker。
有關如何使用 Helm 配置 Milvus 的詳細資訊,請參閱Configure Milvus with Helm Charts。有關 Woodpecker 相關組態項目的詳細資訊,請參閱woodpecker 相關組態。 |
使用 YAML 檔案
- 配置
values.yaml檔案中的externalConfigFiles部分。
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.
- 配置前面的部分並儲存
values.yaml檔案後,執行以下指令安裝使用 Woodpecker 配置的 Milvus。
helm install <your_release_name> milvus/milvus -f values.yaml
使用 Helm 配置 Kafka
對於 K8s 上的 Milvus 集群,你可以在啟動 Milvus 的同一個命令中配置 Kafka。另外,你也可以在啟動 Milvus 之前,使用 /charts/milvus 路徑上milvus-helm套件庫中的values.yml 檔案來設定 Kafka。
有關如何使用 Helm設定 Milvus 的詳細資訊,請參考Configure Milvus with Helm Charts。有關 Pulsar 相關設定項的詳細資訊,請參閱Pulsar 相關設定。
使用 YAML 檔案
- 如果要使用 Kafka 作為訊息儲存系統,請設定
values.yaml檔案中的externalConfigFiles部分。
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- 配置完前面的部分並儲存
values.yaml檔案後,執行以下指令來安裝使用 Kafka 配置的 Milvus。
helm install <your_release_name> milvus/milvus -f values.yaml
使用 Helm 配置 RocksMQ
Milvus standalone 使用 RocksMQ 作為預設的訊息儲存空間。關於如何使用 Helm 配置 Milvus 的詳細步驟,請參考Configure Milvus with Helm Charts。關於 RocksMQ 相關配置項的詳細步驟,請參考RocksMQ 相關配置。
如果你用 RocksMQ 啟動 Milvus 並想要改變它的設定,你可以用以下 YAML 檔案中改變的設定執行
helm upgrade -f。如果你已經使用 Helm 獨立安裝了 Milvus,並使用了 RocksMQ 以外的訊息存放區,而想要將它改回 RocksMQ,請在刷新所有的集合並停止 Milvus 之後,使用下列 YAML 檔案執行
helm upgrade -f。
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]
不建議改變訊息存放區。如果你想這麼做,請先停止所有的 DDL 作業,然後再呼叫 FlushAll API 來沖洗所有的集合,最後在真正改變訊息存放區之前停止 Milvus。
下一步
了解如何使用 Docker Compose 或 Helm 配置 Milvus 的其他相依性: