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)

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

如果您直接实例化 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);
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部