使用 Docker Compose 或 Helm 設定訊息儲存
Milvus 採用訊息佇列來管理近期變更的日誌、輸出串流日誌,並提供日誌訂閱服務。自 Milvus 3.0.x 起,Woodpecker 成為預設推薦的訊息佇列;本主題將介紹如何透過 Docker Compose 或 Helm 配置 Pulsar 或 Kafka。
您可以透過Docker Compose或在 K8s 上配置 Pulsar,並在 K8s 上配置 Kafka。
訊息佇列限制:升級至 Milvus v3.0.5 時,您必須維持當前的訊息佇列選擇。升級過程中不支援在不同的訊息佇列系統之間切換。未來版本將支援變更訊息佇列系統。
使用 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 之前,透過milvus-helm儲存庫中 /charts/milvus 路徑下的 `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 之前,使用milvus-helm儲存庫中 /charts/milvus 路徑下的values.yml 檔案來配置 Woodpecker。
有關如何使用 Helm 配置 Milvus 的詳細資訊,請參閱《使用 Helm Charts 配置 Milvus》。有關 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 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.
- 配置完上述區段並儲存
values.yaml檔案後,請執行以下指令以安裝採用 Woodpecker 設定的 Milvus。
helm install <your_release_name> milvus/milvus -f values.yaml
使用 Helm 配置 Kafka
對於部署於 K8s 上的 Milvus 叢集,您可以在啟動 Milvus 的同一條指令中配置 Kafka。或者,您也可以在啟動 Milvus 之前,透過milvus-helm儲存庫中 /charts/milvus 路徑下的values.yml 檔案來配置 Kafka。
有關如何使用 Helm 配置 Milvus 的詳細資訊,請參閱《使用 Helm Charts 配置 Milvus》。有關 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 獨立部署版本 2.5.x 之前,RocksMQ 是預設的訊息儲存系統;自 2.6.x 起,預設則改為 Woodpecker。有關如何使用 Helm 配置 Milvus 的詳細步驟,請參閱《使用 Helm Charts 配置 Milvus》。 有關 RocksMQ 相關配置項目的詳細資訊,請參閱《RocksMQ 相關配置》。
若您已使用 RocksMQ 啟動 Milvus 並希望變更其設定,可執行 `
helm upgrade -f` 指令,並在以下 YAML 檔案中載入已修改的設定。若您曾透過 Helm 以獨立模式安裝 Milvus,且使用 RocksMQ 以外的訊息儲存庫,現欲將其改回 RocksMQ,請先清空所有集合並停止 Milvus,再執行
helm upgrade -f並使用以下 YAML 檔案。
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 依賴項: