Mengonfigurasi Penyimpanan Pesan dengan Docker Compose atau Helm
Milvus menggunakan antrian pesan untuk mengelola log perubahan terbaru, mengeluarkan log aliran, dan menyediakan langganan log. Mulai dari Milvus 3.0.x, Woodpecker menjadi antrian pesan yang direkomendasikan secara default; topik ini menjelaskan cara mengonfigurasi Pulsar atau Kafka menggunakan Docker Compose atau Helm.
Anda dapat mengonfigurasi Pulsar dengan Docker Compose atau di K8s, serta mengonfigurasi Kafka di K8s.
Batasan Antrian Pesan: Saat melakukan upgrade ke Milvus v3.0.3, Anda harus mempertahankan pilihan antrian pesan yang saat ini digunakan. Pergantian antara sistem antrian pesan yang berbeda selama proses upgrade tidak didukung. Dukungan untuk mengganti sistem antrian pesan akan tersedia pada versi mendatang.
Mengonfigurasi Pulsar dengan Docker Compose
1. Konfigurasi Pulsar
Untuk mengonfigurasi Pulsar dengan Docker Compose, masukkan nilai-nilai Anda untuk bagian ` pulsar ` dalam berkas ` milvus.yaml ` di jalur `milvus/configs`.
pulsar:
address: localhost # Address of pulsar
port: 6650 # Port of pulsar
maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
Lihat konfigurasi terkait Pulsar untuk informasi lebih lanjut.
2. Jalankan Milvus
Jalankan perintah berikut untuk memulai Milvus yang menggunakan konfigurasi Pulsar.
docker compose up
Konfigurasikan Pulsar dengan Helm
Untuk klaster Milvus di K8s, Anda dapat mengonfigurasi Pulsar dalam perintah yang sama yang digunakan untuk memulai Milvus. Atau, Anda dapat mengonfigurasi Pulsar menggunakan berkas ` values.yml ` di jalur `/charts/milvus` dalam repositori milvus-helm sebelum memulai Milvus.
Untuk detail tentang cara mengonfigurasi Milvus menggunakan Helm, lihat Konfigurasi Milvus dengan Helm Charts. Untuk detail tentang item konfigurasi terkait Pulsar, lihat Konfigurasi terkait Pulsar. |
Menggunakan berkas YAML
- Konfigurasikan bagian `
externalConfigFiles` dalam berkas `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
- Setelah mengonfigurasi bagian-bagian sebelumnya dan menyimpan berkas `
values.yaml`, jalankan perintah berikut untuk menginstal Milvus yang menggunakan konfigurasi Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Konfigurasikan Woodpecker dengan Helm
Untuk klaster Milvus di K8s, Anda dapat mengonfigurasi Woodpecker dalam perintah yang sama yang digunakan untuk memulai Milvus. Atau, Anda dapat mengonfigurasi Woodpecker menggunakan berkas values.yml di jalur /charts/milvus dalam repositori milvus-helm sebelum memulai Milvus.
Untuk detail tentang cara mengonfigurasi Milvus menggunakan Helm, lihat Mengonfigurasi Milvus dengan Helm Charts. Untuk detail mengenai item konfigurasi terkait Woodpecker, lihat konfigurasi terkait Woodpecker. |
Menggunakan berkas YAML
- Konfigurasikan bagian `
externalConfigFiles` dalam berkas `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.
- Setelah mengonfigurasi bagian-bagian sebelumnya dan menyimpan berkas `
values.yaml`, jalankan perintah berikut untuk menginstal Milvus yang menggunakan konfigurasi Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Konfigurasikan Kafka dengan Helm
Untuk kluster Milvus di K8s, Anda dapat mengonfigurasi Kafka dalam perintah yang sama saat memulai Milvus. Atau, Anda dapat mengonfigurasi Kafka menggunakan berkas values.yml di jalur /charts/milvus dalam repositori milvus-helm sebelum memulai Milvus.
Untuk detail tentang cara mengonfigurasi Milvus menggunakan Helm, lihat Mengonfigurasi Milvus dengan Helm Charts. Untuk detail tentang item konfigurasi terkait Pulsar, lihat Konfigurasi terkait Pulsar.
Menggunakan berkas YAML
- Konfigurasikan bagian `
externalConfigFiles` dalam berkas `values.yaml` jika Anda ingin menggunakan Kafka sebagai sistem penyimpanan pesan.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- Setelah mengonfigurasi bagian-bagian sebelumnya dan menyimpan berkas `
values.yaml`, jalankan perintah berikut untuk menginstal Milvus yang menggunakan konfigurasi Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Konfigurasi RocksMQ dengan Helm
RocksMQ merupakan penyimpanan pesan default di Milvus standalone hingga versi 2.5.x; mulai versi 2.6.x, defaultnya adalah Woodpecker. Untuk langkah-langkah terperinci mengenai cara mengonfigurasi Milvus dengan Helm, lihat Konfigurasi Milvus dengan Helm Charts. Untuk detail mengenai item konfigurasi terkait RocksMQ, lihat Konfigurasi terkait RocksMQ.
Jika Anda memulai Milvus dengan RocksMQ dan ingin mengubah pengaturannya, Anda dapat menjalankan `
helm upgrade -f` dengan pengaturan yang telah diubah dalam berkas YAML berikut.Jika Anda telah menginstal Milvus secara mandiri menggunakan Helm dengan penyimpanan pesan selain RocksMQ dan ingin mengembalikannya ke RocksMQ, jalankan perintah `
helm upgrade -f` dengan berkas YAML berikut setelah Anda mengosongkan semua koleksi dan menghentikan Milvus.
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]
Mengganti penyimpanan pesan tidak disarankan. Jika Anda tetap ingin melakukannya, hentikan semua operasi DDL, lalu panggil API FlushAll untuk mengosongkan semua koleksi, dan akhirnya hentikan Milvus sebelum benar-benar mengganti penyimpanan pesan.
Langkah selanjutnya
Pelajari cara mengonfigurasi dependensi Milvus lainnya dengan Docker Compose atau Helm: