3.4.2. 部署集群代理

如果项目中有两个或多个代理 Pod 运行,则 Pod 会自动组成代理集群。集群配置使代理能够互相连接,并根据需要重新分发消息,以实现负载平衡。

以下流程演示了如何部署集群代理。默认情况下,这个部署中的代理会 根据需求 负载平衡使用,这意味着代理只会将消息转发到具有匹配消费者的其他代理。

先决条件

流程

  1. 打开用于基本代理部署的 CR 文件。
  2. 对于集群部署,请确保 deploymentPlan.size 的值为 2 或更高。例如:

    apiVersion: broker.amq.io/v2alpha4
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
      application: ex-aao-app
    spec:
        version: 7.9.3
        deploymentPlan:
            size: 4
            image: placeholder
            ...
    注意

    metadata 部分中,您需要包含 namespace 属性,只有在 使用 OpenShift Container Platform Web 控制台创建 CR 实例时才需要指定一个值。您应指定的值是代理部署的 OpenShift 项目的名称。

  3. 保存修改后的 CR 文件。
  4. 以具有特权的用户身份登录 OpenShift,以在之前创建基本代理部署的项目中部署 CR。

    $ oc login -u <user> -p <password> --server=<host:port>
  5. 切换到之前创建基本代理部署的项目。

    $ oc project <project_name>
  6. 在命令行中应用更改:

    $ oc apply -f <path/to/custom_resource_instance>.yaml

    在 OpenShift Container Platform Web 控制台中,根据 CR 中指定的数量,在项目中启动其他代理 Pod。默认情况下,项目中运行的代理会被集群。

  7. 打开每个 Pod 的 Logs 选项卡。日志显示 OpenShift 在各个代理上建立了集群连接网桥。特别是,日志输出包括以下行:

    targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88