コンテンツへスキップ

RabbitMQ Brokerの作成

このトピックでは、RabbitMQ Brokerの作成方法について説明します。

前提条件

  1. Knative Eventingをインストール済みであること。
  2. CertManager v1.5.4 をインストール済みであること - RabbitMQ Messaging Topology Operatorとの最も簡単な統合方法
  3. RabbitMQ Messaging Topology Operator をインストール済みであること - CertManagerを使用する最新リリースをお勧めします。
  4. 動作中のRabbitMQインスタンスにアクセスできること。RabbitMQ Cluster Kubernetes Operator を使用してRabbitMQインスタンスを作成できます。詳細については、RabbitMQのウェブサイトを参照してください。

RabbitMQコントローラのインストール

  1. 次のコマンドを実行してRabbitMQコントローラをインストールします。

    kubectl apply -f https://github.com/knative-extensions/eventing-rabbitmq/releases/download/knative-v1.16.0/rabbitmq-broker.yaml
    
  2. rabbitmq-broker-controllerrabbitmq-broker-webhookが実行されていることを確認します。

    kubectl get deployments.apps -n knative-eventing
    

    出力例

    NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
    eventing-controller            1/1     1            1           10s
    eventing-webhook               1/1     1            1           9s
    rabbitmq-broker-controller     1/1     1            1           3s
    rabbitmq-broker-webhook        1/1     1            1           4s
    

RabbitMQBrokerConfigオブジェクトの作成

  1. 次のテンプレートを使用してYAMLファイルを作成します。

    apiVersion: eventing.knative.dev/v1alpha1
    kind: RabbitmqBrokerConfig
    metadata:
      name: <rabbitmq-broker-config-name>
    spec:
      rabbitmqClusterReference:
        # Configure name if a RabbitMQ Cluster Operator is being used.
        name: <cluster-name>
        # Configure connectionSecret if an external RabbitMQ cluster is being used.
        connectionSecret:
          name: rabbitmq-secret-credentials
      queueType: quorum
    
    ここで

    • は、RabbitMQBrokerConfigオブジェクトの名前です。
    • は、以前に作成したRabbitMQクラスタの名前です。

    注記

    nameはBrokerと同じクラスタで実行されているRabbitMQ Cluster Operatorインスタンス用であり、connectionSecretは外部RabbitMQサーバー用であるため、nameconnectionSecretを同時に設定することはできません。

  2. 次のコマンドを実行してYAMLファイルを適用します。

    kubectl create -f <filename>
    
    ここで<filename>は、前のステップで作成したファイル名です。

RabbitMQBrokerオブジェクトの作成

  1. 次のテンプレートを使用してYAMLファイルを作成します。

    apiVersion: eventing.knative.dev/v1
    kind: Broker
    metadata:
      annotations:
        eventing.knative.dev/broker.class: RabbitMQBroker
      name: <broker-name>
    spec:
      config:
        apiVersion: eventing.knative.dev/v1alpha1
        kind: RabbitmqBrokerConfig
        name: <rabbitmq-broker-config-name>
    
    ここで<rabbitmq-broker-config-name>は、上記のステップでRabbitMQBrokerConfigに付けた名前です。

  2. 次のコマンドを実行してYAMLファイルを適用します。

    kubectl apply -f <filename>
    
    ここで<filename>は、前のステップで作成したファイル名です。

メッセージ順序付けの設定

デフォルトでは、Triggerはメッセージを一度に1つずつ消費して順序を維持します。イベントの順序が重要ではなく、より高いパフォーマンスが必要な場合は、parallelismアノテーションを使用して設定できます。parallelismnに設定すると、Triggerにn個のワーカーが作成され、すべて並列でメッセージを消費します。

次のYAMLは、並列処理が10に設定されているTriggerの例を示しています。

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: high-throughput-trigger
  annotations:
    rabbitmq.eventing.knative.dev/parallelism: "10"
...

追加情報

サイトトラフィックを理解するために、分析とCookieを使用しています。その目的で、サイトの使用に関する情報はGoogleと共有されます。詳細はこちら。