Mengonfigurasi Penyimpanan Pesan dengan Docker Compose atau Helm
Milvus menggunakan Pulsar atau Kafka untuk mengelola log perubahan terbaru, mengeluarkan log aliran, dan menyediakan langganan log. Pulsar adalah sistem penyimpanan pesan default. Topik ini memperkenalkan cara mengonfigurasi penyimpanan pesan dengan Docker Compose atau Helm.
Anda dapat mengonfigurasi Pulsar dengan Docker Compose atau pada K8 dan mengonfigurasi Kafka pada K8.
Mengonfigurasi Pulsar dengan Docker Compose
1. Mengkonfigurasi Pulsar
Untuk mengonfigurasi Pulsar dengan Docker Compose, berikan nilai Anda untuk bagian pulsar
di berkas milvus.yaml
pada 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. Menjalankan Milvus
Jalankan perintah berikut untuk menjalankan Milvus yang menggunakan konfigurasi Pulsar.
docker compose up
Mengkonfigurasi Pulsar dengan Helm
Untuk gugus Milvus pada K8, Anda dapat mengonfigurasi Pulsar dengan perintah yang sama dengan perintah untuk memulai Milvus. Atau, Anda dapat mengkonfigurasi Pulsar menggunakan berkas values.yml
pada jalur /charts/milvus di repositori milvus-helm sebelum memulai Milvus.
Untuk detail tentang cara mengkonfigurasi Milvus menggunakan Helm, lihat Mengkonfigurasi Milvus dengan Grafik Helm. Untuk detail mengenai item konfigurasi yang berhubungan dengan Pulsar, lihat Konfigurasi yang berhubungan dengan Pulsar.
Menggunakan file YAML
- Konfigurasikan bagian
externalConfigFiles
pada filevalues.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 mengkonfigurasi bagian sebelumnya dan menyimpan file
values.yaml
, jalankan perintah berikut untuk menginstal Milvus yang menggunakan konfigurasi Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Mengkonfigurasi Kafka dengan Helm
Untuk cluster Milvus pada K8, Anda dapat mengonfigurasi Kafka dengan perintah yang sama dengan perintah untuk menjalankan Milvus. Atau, Anda dapat mengonfigurasi Kafka menggunakan file values.yml
pada jalur /charts/milvus di repositori milvus-helm sebelum memulai Milvus.
Untuk detail mengenai cara mengkonfigurasi Milvus menggunakan Helm, lihat Mengkonfigurasi Milvus dengan Grafik Helm. Untuk detail mengenai item konfigurasi yang berhubungan dengan Pulsar, lihat Konfigurasi yang berhubungan dengan Pulsar.
Menggunakan file YAML
- Konfigurasikan bagian
externalConfigFiles
pada filevalues.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 mengkonfigurasi 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
Mengkonfigurasi RocksMQ dengan Helm
Milvus mandiri menggunakan RocksMQ sebagai penyimpanan pesan default. Untuk langkah-langkah terperinci tentang cara mengonfigurasi Milvus dengan Helm, lihat Mengonfigurasi Milvus dengan Grafik Helm. Untuk detail tentang item konfigurasi yang berhubungan dengan RocksMQ, lihat Konfigurasi yang berhubungan dengan RocksMQ.
Jika Anda memulai Milvus dengan RocksMQ dan ingin mengubah pengaturannya, Anda dapat menjalankan
helm upgrade -f
dengan pengaturan yang telah diubah pada file YAML berikut ini.Jika Anda telah menginstal Milvus mandiri menggunakan Helm dengan penyimpanan pesan selain RocksMQ dan ingin mengubahnya kembali ke RocksMQ, jalankan
helm upgrade -f
dengan file YAML berikut setelah Anda mem-flush 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]
Mengubah penyimpanan pesan tidak disarankan. Jika Anda ingin melakukan ini, hentikan semua operasi DDL, lalu panggil FlushAll API untuk mem-flush semua koleksi, dan akhirnya hentikan Milvus sebelum Anda benar-benar mengubah penyimpanan pesan.
Mengkonfigurasi NATS dengan Helm
NATS adalah alternatif penyimpanan pesan eksperimental untuk RocksMQ. Untuk langkah-langkah rinci tentang bagaimana mengkonfigurasi Milvus dengan Helm, lihat Mengkonfigurasi Milvus dengan Grafik Helm. Untuk detail tentang item konfigurasi yang berhubungan dengan RocksMQ, lihat Konfigurasi yang berhubungan dengan NATS.
Jika Anda memulai Milvus dengan NATS dan ingin mengubah pengaturannya, Anda dapat menjalankan
helm upgrade -f
dengan pengaturan yang telah diubah pada file YAML berikut ini.Jika Anda telah menginstal Milvus mandiri dengan penyimpanan pesan selain NATS dan ingin mengubahnya menjadi NATS, jalankan
helm upgrade -f
dengan berkas YAML berikut setelah Anda mem-flush semua koleksi dan menghentikan Milvus.
extraConfigFiles:
user.yaml: |+
mq:
type: natsmq
natsmq:
# server side configuration for natsmq.
server:
# 4222 by default, Port for nats server listening.
port: 4222
# /var/lib/milvus/nats by default, directory to use for JetStream storage of nats.
storeDir: /var/lib/milvus/nats
# (B) 16GB by default, Maximum size of the 'file' storage.
maxFileStore: 17179869184
# (B) 8MB by default, Maximum number of bytes in a message payload.
maxPayload: 8388608
# (B) 64MB by default, Maximum number of bytes buffered for a connection applies to client connections.
maxPending: 67108864
# (√ms) 4s by default, waiting for initialization of natsmq finished.
initializeTimeout: 4000
monitor:
# false by default, If true enable debug log messages.
debug: false
# true by default, If set to false, log without timestamps.
logTime: true
# no log file by default, Log file path relative to.. .
logFile:
# (B) 0, unlimited by default, Size in bytes after the log file rolls over to a new one.
logSizeLimit: 0
retention:
# (min) 3 days by default, Maximum age of any message in the P-channel.
maxAge: 4320
# (B) None by default, How many bytes the single P-channel may contain. Removing oldest messages if the P-channel exceeds this size.
maxBytes:
# None by default, How many message the single P-channel may contain. Removing oldest messages if the P-channel exceeds this limit.
maxMsgs:
Memilih antara RockMQ dan NATS?
RockMQ menggunakan CGO untuk berinteraksi dengan RocksDB dan mengelola memori dengan sendirinya, sementara NATS murni-GO yang tertanam dalam instalasi Milvus mendelegasikan pengelolaan memorinya ke pengumpul sampah Go (GC).
Dalam skenario di mana paket data lebih kecil dari 64 kb, RocksDB mengungguli dalam hal penggunaan memori, penggunaan CPU, dan waktu respons. Di sisi lain, jika paket data lebih besar dari 64 kb, NATS unggul dalam hal waktu respons dengan memori yang cukup dan penjadwalan GC yang ideal.
Saat ini, Anda disarankan untuk menggunakan NATS hanya untuk eksperimen.
Selanjutnya
Pelajari cara mengonfigurasi dependensi Milvus lainnya dengan Docker Compose atau Helm: