RabbitMQ Brokerの作成¶
このトピックでは、RabbitMQ Brokerの作成方法について説明します。
前提条件¶
- Knative Eventingをインストール済みであること。
- CertManager v1.5.4 をインストール済みであること - RabbitMQ Messaging Topology Operatorとの最も簡単な統合方法
- RabbitMQ Messaging Topology Operator をインストール済みであること - CertManagerを使用する最新リリースをお勧めします。
- 動作中のRabbitMQインスタンスにアクセスできること。RabbitMQ Cluster Kubernetes Operator を使用してRabbitMQインスタンスを作成できます。詳細については、RabbitMQのウェブサイトを参照してください。
RabbitMQコントローラのインストール¶
-
次のコマンドを実行してRabbitMQコントローラをインストールします。
kubectl apply -f https://github.com/knative-extensions/eventing-rabbitmq/releases/download/knative-v1.16.0/rabbitmq-broker.yaml
-
rabbitmq-broker-controller
とrabbitmq-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オブジェクトの作成¶
-
次のテンプレートを使用して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サーバー用であるため、name
とconnectionSecret
を同時に設定することはできません。 -
次のコマンドを実行してYAMLファイルを適用します。
ここでkubectl create -f <filename>
<filename>
は、前のステップで作成したファイル名です。
RabbitMQBrokerオブジェクトの作成¶
-
次のテンプレートを使用して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に付けた名前です。 -
次のコマンドを実行してYAMLファイルを適用します。
ここでkubectl apply -f <filename>
<filename>
は、前のステップで作成したファイル名です。
メッセージ順序付けの設定¶
デフォルトでは、Triggerはメッセージを一度に1つずつ消費して順序を維持します。イベントの順序が重要ではなく、より高いパフォーマンスが必要な場合は、parallelism
アノテーションを使用して設定できます。parallelism
をn
に設定すると、Triggerにn
個のワーカーが作成され、すべて並列でメッセージを消費します。
次のYAMLは、並列処理が10
に設定されているTriggerの例を示しています。
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: high-throughput-trigger
annotations:
rabbitmq.eventing.knative.dev/parallelism: "10"
...
追加情報¶
- その他のサンプルについては、
eventing-rabbitmq
Githubリポジトリのサンプルディレクトリをご覧ください。 - バグの報告や機能のリクエストを行うには、
eventing-rabbitmq
Githubリポジトリでissueを作成してください。