8.2. 通过代理路由信息
如果您需要存储和转发消息,您可以在消息代理上通过队列进行路由。在这种情况下,消息制作者向路由器发送消息,路由器将消息发送到代理队列。当消费者连接到路由器来接收消息时,路由器从代理队列检索它们。
您可以将消息路由到与路由器网络相同的 OpenShift 集群中运行的代理,或路由到集群外部运行的代理。
先决条件
- 您必须有权访问消息代理。
流程
开始编辑路由器部署的 Interconnect 自定义资源 YAML 文件。
$ oc edit -f router-mesh.yaml
在
spec
部分,添加连接器以连接到代理、指向代理的定位点地址,以及 autolinks 来创建到队列的链接。router-mesh.yaml
文件示例apiVersion: interconnectedcloud.github.io/v1alpha1 kind: Interconnect metadata: name: router-mesh spec: ... addresses: - prefix: my-queue 1 waypoint: true autoLinks: 2 - address: my-queue direction: in connection: my-broker - address: my-queue direction: out connection: my-broker connectors: 3 - name: my-broker host: broker port: 5672 routeContainer: true
Operator 对路由器网络应用更改并重启每个 Pod。
验证路由器是否已建立到消息代理的 autolink。
$ 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 重复此步骤。
路由器网络中的每个路由器必须具有相同的地址配置。
其他资源
- 有关将消息路由到代理队列和来自代理队列的更多信息,请参阅 通过代理队列路由消息。