6.2. ブローカーによるメッセージのルーティング
メッセージを保存および転送する必要がある場合は、メッセージブローカーのキューを介してそれらをルーティングすることができます。このシナリオでは、メッセージプロデューサーがメッセージをルーターに送信し、ルーターはメッセージをブローカーキューに送信します。コンシューマーがメッセージを受信するためにルーターに接続すると、ルーターはブローカーキューからメッセージを取得します。
ルーターネットワークと同じ OpenShift クラスターで実行されているブローカーにメッセージをルーティングすることも、クラスター外で実行されているブローカーにメッセージをルーティングすることもできます。
前提条件
- メッセージブローカーにアクセスできる必要があります。
手順
ルーターデプロイメントを記述する Interconnect カスタムリソース YAML ファイルの編集を開始します。
$ oc edit -f router-mesh.yaml
spec
セクションに、ブローカーに接続するコネクター、ブローカーキューをポイントするウェイポイントアドレス、およびキューへのリンクを作成する自動リンクを追加します。router-mesh.yaml
ファイルのサンプルapiVersion: interconnectedcloud.github.io/v1alpha1 kind: Interconnect metadata: name: router-mesh spec: ... addresses: - prefix: my-queue 1 waypoint: true autoLinks: 2 - prefix: my-queue direction: in connection: my-broker - prefix: my-queue direction: out connection: my-broker connectors: 3 - name: my-broker host: broker port: 5672 routeContainer: true
Operator は変更をルーターネットワークに適用し、各 Pod を再起動します。
ルーターがメッセージブローカーへの自動リンクを確立していることを確認します。
$ oc exec router-mesh-6d6dccb57f-x5cqf -it -- qdstat --autolinks AutoLinks addr dir phs extAddr link status lastErr ==================================================== my-queue in 1 26 active my-queue out 0 27 active
ルーターネットワークのルーターを定義する追加のルーターデプロイメントのカスタムリソースがある場合、各 CR についてこの手順を繰り返します。
ルーターネットワーク内の各ルーターは、同じアドレス設定を持つ必要があります。
関連情報
- ブローカーキューとの間でメッセージのルーティングに関する詳細は、ブローカーキューを使用したメッセージのルーティング を参照してください。