6.7. 配置静态发现


有时,可能无法在您使用的网络上使用 UDP。在这种情况下,您可以使用可能的服务器的初始列表配置连接。这个列表可以是您知道始终可用的一个代理,或者至少有一个代理列表。

这并不表示您必须知道要托管所有服务器的位置。您可以将这些服务器配置为使用可靠的服务器进行连接。连接后,它们的连接详细信息将从服务器传播到客户端。

如果您在客户端上使用 JNDI 来查找您的 JMS 连接工厂实例,您可以在 JNDI 上下文环境中指定这些参数。通常,参数在名为 jndi.properties 的文件中定义。以下是提供静态代理列表而不是使用动态发现的 jndi.properties 文件示例。

java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
connectionFactory.myConnectionFactory=(tcp://myhost:61616,tcp://myhost2:61616)
Copy to Clipboard Toggle word wrap

当客户端使用上述连接工厂时,其连接将在括号 () 中定义的代理列表中进行负载均衡。

如果您直接实例化 JMS 连接工厂,您可以在创建 JMS 连接工厂时明确指定连接器列表,如下例所示。

HashMap<String, Object> map = new HashMap<String, Object>();
map.put("host", "myhost");
map.put("port", "61616");
TransportConfiguration broker1 = new TransportConfiguration
    (NettyConnectorFactory.class.getName(), map);

HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("host", "myhost2");
map2.put("port", "61617");
TransportConfiguration broker2 = new TransportConfiguration
    (NettyConnectorFactory.class.getName(), map2);

ActiveMQConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithHA
    (JMSFactoryType.CF, broker1, broker2);
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部