ActiveMQ Classic 连接 URI

使用 ActiveMQ Classic > 配置传输 > ActiveMQ Classic 连接 URI

传输配置选项

您可能最先使用的一种 URI 类型是传输 URI,用于使用某种传输连接到代理。通常情况下,TCP 或 VM 是您最先使用的传输。

注意空格

所有以下 URI 配置都基于 java.net.URI 类,该类不允许使用空格。因此,如果您正在使用 failover:static: URI,请勿在 ',' 符号周围放置任何空格。

AUTO 传输

从 5.13.0 开始,ActiveMQ Classic 支持通过 TCP、SSL、NIO 和 NIO SSL 进行自动线路协议检测。 支持 OpenWire、STOMP、AMQP 和 MQTT。 有关详细信息,请参阅 AUTO 传输参考。

VM 传输

VM 传输允许客户端在 VM 内部相互连接,而无需网络通信开销。 使用的连接不是套接字连接,而是使用直接方法调用来启用高性能嵌入式消息系统。

第一个使用 VM 连接的客户端将启动一个嵌入式代理。 后续连接将连接到该代理。 一旦所有与代理的 VM 连接关闭,嵌入式代理将自动关闭。

有关更多信息,请参阅 VM 传输参考

AMQP 传输

从 5.8.0 开始,ActiveMQ Classic 支持 AMQP。 有关详细信息,请参阅 AMQP 传输参考。

MQTT 传输

从 5.6.0 开始,ActiveMQ Classic 也支持 MQTT。 它是一种轻量级发布/订阅消息传输。 有关详细信息,请参阅 MQTT 传输参考。

TCP 传输

TCP 传输允许客户端使用 TCP 套接字连接到远程 ActiveMQ Classic。

有关更多信息,请参阅 TCP 传输参考

NIO 传输

与 TCP 传输相同,只是使用了 New I/O (NIO) 包,这可能会提供更好的性能。 Java NIO 包不应与 IBM 的 AIO4J 包混淆。

要从 TCP 切换到 NIO,只需更改 URI 的方案部分。 以下是在代理的 XML 配置文件中定义的一个示例。

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio" uri="nio://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

尝试在客户端使用 nio 传输 URL 将实例化常规 TCP 传输。 有关更多信息,请参阅 NIO 传输参考

SSL 传输

这允许您通过 TCP 使用 SSL 进行通信。 有关更多信息,请参阅 SSL 传输参考

NIO SSL 传输

可用性

自 5.6 起可用

在 NIO 上实现 SSL 传输。 这允许您将大量 SSL 客户端连接到单个代理实例。 这是服务器端传输选项。

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

尝试在客户端使用 nio+ssl 传输 URL 将实例化常规 SSL 传输。

对等传输

对等传输为 ActiveMQ Classic 提供点对点网络。 实际上,对等传输使用 VM 传输来创建并连接到本地嵌入式代理,但该代理配置了嵌入式代理以建立到其他对等嵌入式代理的网络连接。

有关更多信息,请参阅 对等传输参考

UDP 传输

这允许您通过 UDP 进行通信。

有关更多信息,请参阅 UDP 传输参考

组播传输

这允许您通过组播进行通信。

有关更多信息,请参阅 组播传输参考

HTTP 和 HTTPS 传输

这允许 ActiveMQ Classic 客户端和代理通过 HTTP 建立隧道。 如果客户端不是 JMS,您可能需要考虑使用 RESTAjax 支持。

有关更多信息,请参阅 HTTP 和 HTTPS 传输参考

WebSocket 传输

此传输使用新的 HTML5 WebSocket 与代理交换消息。 有关更多信息,请参阅 WebSocket 传输参考

Stomp 传输

一种纯文本传输,可与多种语言一起使用。 有关更多详细信息,请参阅 Stomp

通用 URI

您可以通过以下 URI 语法配置其他功能…

连接配置 URI

任何 Apache ActiveMQ Classic JMS 连接都可以使用 URL 配置,或者在 ActiveMQConnectionActiveMQConnectionFactory 对象本身显式设置属性。

有关更多信息,请参阅 连接配置 URI

目标选项

您可以使用 目标选项 配置各种与消费者相关的选项,这些选项允许您使用 URI 语法配置目标。

代理配置 URI

您可以使用 代理配置 URI 配置嵌入式代理,无论是使用 Java 中的 BrokerFactory 帮助程序类还是使用 activemq shell 脚本。 有关更多详细信息,请参阅 如何运行代理

配置线路格式

任何涉及将消息编组到某种网络传输(如 TCP 或 UDP)上的传输通常会使用 OpenWire 格式。 这可以配置以自定义线路上的内容。

有关更多信息,请参阅 配置线路格式

高级协议 URI

以下高级协议可以通过 URI 配置

故障转移传输

故障转移传输在任何其他传输之上层叠重新连接逻辑。 这曾经是 ActiveMQ Classic 3 中的可靠传输。 它的配置语法允许您指定任意数量的复合 URI。 故障转移传输随机选择一个复合 URI 并尝试建立到该 URI 的连接。 如果它没有成功或者随后失败,则会建立到列表中其他 URI 之一的连接。

有关更多信息,请参阅 故障转移传输参考

扇出传输

扇出传输在任何其他传输之上层叠重新连接和复制逻辑。 它用于将命令复制到多个代理。

有关更多信息,请参阅 扇出传输参考

使用发现

通常在使用 TCP 等传输时,您需要使用 发现 来定位可用的代理。 这与使用(例如)组播 不同,因为实际的主要通信是通过 TCP 进行的,而组播纯粹用于发现代理的位置。

发现传输

发现传输的工作方式与可靠传输相同,只是它使用发现代理来定位要连接到的 URI 列表。

有关更多信息,请参阅 发现传输参考

ZeroConf 传输

ZeroConf 传输提供 发现,它的工作方式与 发现传输 相同,但不是使用我们自己的基于组播的发现机制(允许您配置确切的组播地址和端口等),而是使用 ZeroConf 传输。

有关更多信息,请参阅 ZeroConf 传输参考

服务器端选项

在 ActiveMQ Classic 代理配置中,可以使用一些选项来更改 TransportConnector 上的服务器行为。 这些选项是

属性名称 默认值 描述
allowLinkStealing false 默认情况下,MQTT 传输启用此选项。 链接窃取是指,在具有相同 ID(JMS 的 clientID)的两个或多个连接中,最后一个连接被视为有效连接,而较旧的连接会被代理关闭。
discoveryURI null 如果设置,则为客户端连接查找代理的组播发现地址。
enableStatusMonitor false 将监控连接以确定它们是否被阻止。
name null TransportConnector 实例的名称。
rebalanceClusterClients false 将在拓扑发生变化时自动在集群中重新平衡客户端。
updateClusterClients false 如果启用,将更新客户端连接(如果它们使用 failover:// 传输)关于代理集群的更改。
updateClusterClientsOnRemove false 如果代理从集群中移除,将更新客户端。
updateClusterFilter null 逗号分隔的正则表达式列表。 名称与模式匹配的代理将被包含在客户端更新中。
uri null 传输的绑定地址。

示例配置

<broker>
   <!-- ... -->

   <transportConnectors>
     <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" enableStatusMonitor="true"/> 
   </<transportConnectors>

   <!-- ... -->
</broker>

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标志和 Apache ActiveMQ 项目标志是 Apache 软件基金会的商标。 版权所有 © 2024,Apache 软件基金会。 按照 Apache 许可证 2.0 许可。