29.2. 服务器端消息负载平衡


如果在群集的节点之间定义了群集连接,则 JBoss EAP 消息传递将对客户端到达特定节点的消息进行负载平衡。

消息传递集群连接可以配置为以轮循方式对消息进行负载平衡,无论其他节点上是否存在匹配的使用者。也可以将其配置为仅在存在匹配的消费者时分发到其他节点。如需更多信息,请参阅 Message Redistribution 部分。

配置集群连接

群集连接将服务器分组到集群中,以便在群集的节点之间平衡消息。群集连接在 JBoss EAP 服务器配置中利用 cluster-connection 元素定义。

警告

红帽支持在 messaging -activemq 子系统内仅使用一个 cluster- connection

以下是 * -full 和 *-full- ha 配置集中定义的默认 cluster- connection如需完整的属性列表,请参阅群集连接属性

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
  <server name="default">
    ...
    <cluster-connection name="my-cluster" discovery-group="dg-group1" connector-name="http-connector" address="jms"/>
    ...
  </server>
</subsystem>
Copy to Clipboard Toggle word wrap

在上面显示的情况下,集群连接将加载发送到以"jms"开头的地址的消息负载平衡。实际上,此群集连接将应用到所有 JMS 队列和主题,因为它们映射到以子字符串"jms"开头的核心队列。

注意

当使用集群连接发送数据包并处于受阻状态并等待确认时,call-timeout 属性指定在引发异常前等待回复的时长。默认值为 30000。在某些情况下,例如,如果远程 JMS 代理与网络断开连接且事务不完整,则线程可能会停留在连接重新建立前。为避免这种情况,建议使用 call-failover-timeout 属性和 call-timeout 属性。在故障转移尝试期间发出调用时使用 call-failover-timeout 属性。默认值为 -1,即没有超时。有关客户端故障的更多信息,请参阅自动客户端故障切换

注意

或者,如果您希望集群连接使用静态服务器列表进行发现,您可以使用 static-connectors 属性。例如:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
  <server name="default">
    ...
    <cluster-connection name="my-cluster" static-connectors="server0-connector server1-connector" .../>
    ...
  </server>
</subsystem>
Copy to Clipboard Toggle word wrap

在本例中,我们定义了两台服务器,其中至少一台服务器可用。群集中可能有更多服务器,但初始连接后,将使用其中一个连接器来发现这些服务器。

为重复数据删除配置集群连接

集群连接内部使用核心网桥在集群节点之间移动消息。若要为重复的消息检测配置集群连接,请将 use-duplicate-detection 属性 设置为 true,这是默认值。

/subsystem=messaging-activemq/server=default/cluster-connection=my-cluster:write-attribute(name=use-duplicate-detection,value=true)
Copy to Clipboard Toggle word wrap

集群用户凭证

在集群节点之间创建连接以组成群集连接时,JBoss EAP 消息使用群集用户和密码。

您可以使用以下管理 CLI 命令来设置集群用户和密码。

/subsystem=messaging-activemq/server=default:write-attribute(name=cluster-user,value="NewClusterUser")
/subsystem=messaging-activemq/server=default:write-attribute(name=cluster-password,value="NewClusterPassword123")
Copy to Clipboard Toggle word wrap

这会将下列 XML 内容添加到 JBoss EAP 配置文件中的 messaging-activemq 子系统:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
  <server name="default">
    ...
    <cluster user="NewClusterUser" password="NewClusterPassword123"/>
    ...
  </server>
</subsystem>
Copy to Clipboard Toggle word wrap
警告

cluster-user 的默认值为 ACTIVEMQ.CLUSTER.ADMIN.USER,cluster -password 的默认值为 CHANGE ME!!。这些值必须从默认值更改,否则远程客户端将能够使用默认值连接服务器。如果未从默认值更改它们,JBoss EAP 消息传递将检测到这一点并在每次启动时显示警告。

注意

您还可以使用 cluster-credential-reference 属性引用 凭证存储,而不设置集群密码。

/subsystem=messaging-activemq/server=default:write-attribute(name=cluster-credential-reference,value={clear-text=SecretStorePassword})
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat