milvus-logo
LFAI
フロントページへ
  • 管理ガイド
    • 依存関係の管理

Docker ComposeまたはHelmでメッセージストレージを構成する

Milvusは、最近の変更のログ管理、ストリームログの出力、ログ購読の提供にPulsarまたはKafkaを使用します。Pulsarはデフォルトのメッセージ・ストレージ・システムです。このトピックでは、Docker ComposeまたはHelmを使用してメッセージ・ストレージを設定する方法を紹介します。

Docker ComposeまたはK8s上でPulsarを構成し、K8s上でKafkaを構成することができます。

Docker ComposeでPulsarを構成する

1.Pulsarの構成

Docker ComposeでPulsarを設定するには、milvus/configパスの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
設定はMilvusの起動後にのみ有効になります。詳細はMilvusの起動をご参照ください。

HelmによるPulsarの構成

K8s上のMilvusクラスタの場合、Milvusの起動と同じコマンドでPulsarを設定することができます。あるいは、Milvusを起動する前に、milvus-helmリポジトリの/charts/milvusパスにあるvalues.yml ファイルを使ってPulsarを設定することもできます。

Helmを使ったMilvusの設定方法の詳細については、Helm Chartsを使ったMilvusの設定をご参照ください。Pulsar関連の設定項目の詳細については、Pulsar関連の設定を参照してください。

YAMLファイルの使用

  1. 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    
  1. 前述のセクションを設定し、values.yaml ファイルを保存した後、以下のコマンドを実行して、Pulsar設定を使用する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チャートを使用したMilvusの設定」を参照してください。Pulsar関連の設定項目の詳細については、Pulsar関連の設定を参照してください。

YAMLファイルの使用

  1. メッセージ・ストレージ・システムとしてKafkaを使用する場合は、values.yaml ファイルのexternalConfigFiles セクションを設定します。
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. 前述のセクションを設定し、values.yaml ファイルを保存した後、以下のコマンドを実行し、Kafka設定を使用するMilvusをインストールする。
helm install <your_release_name> milvus/milvus -f values.yaml

HelmによるRocksMQの設定

Milvusスタンドアロンでは、デフォルトのメッセージストレージとしてRocksMQを使用します。Helmを利用したMilvusの設定方法の詳細については、「Helmチャートを利用したMilvusの設定」をご参照ください。RocksMQ関連の設定項目については、RocksMQ関連の設定をご参照ください。

  • RocksMQでMilvusを起動し、設定を変更したい場合は、以下のYAMLファイルで変更した設定でhelm upgrade -f

  • RocksMQ以外のメッセージストアを使用してHelmを使用してMilvusをスタンドアロンでインストールし、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を停止してからメッセージストアを変更してください。

HelmでNATSを設定する

NATSはRocksMQに代わる実験的なメッセージストアです。Helmを使ったMilvusの設定方法の詳細については、Helm Chartsを使ったMilvusの設定を参照してください。RocksMQ関連の設定項目については、NATS関連の設定を参照してください。

  • NATSでMilvusを起動し、その設定を変更したい場合は、以下のYAMLファイルの設定を変更した上で、helm upgrade -f

  • NATS以外のメッセージストアでMilvusをスタンドアロンでインストールし、NATSに変更したい場合は、全てのコレクションをフラッシュし、Milvusを停止した後、以下のYAMLファイルでhelm upgrade -f

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: 

RocksMQとNATSのどちらを選択しますか?

RockMQはRocksDBとのやりとりにCGOを使用し、それ自身でメモリを管理しますが、Milvusインストールに組み込まれている純粋なGO NATSはメモリ管理をGoのガベージコレクタ(GC)に委譲します。

データパケットが64kbより小さい場合、RocksDBはメモリ使用量、CPU使用量、レスポンスタイムの点で優れている。一方、データ・パケットが64kbより大きい場合は、十分なメモリと理想的なGCスケジューリングがあれば、NATSの方が応答時間の点で優れている。

現在のところ、NATSは実験にのみ使用することをお勧めします。

次のページ

Docker ComposeやHelmを使ってMilvusの他の依存関係を設定する方法について説明します:

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?