URI 协议

功能 > URI 协议

ActiveMQ Classic 被设计为支持多种不同的 拓扑结构 和协议。您使用哪一种取决于您的消息传递需求、服务质量和网络拓扑。

下表描述了 JMS 客户端可用的不同网络协议,以及显示用于启用此通信协议的连接 URL 字符串。在代理端,还支持其他 传输。您可以在 ActiveMQConnectionFactory(在构造函数中或通过 brokerURL 属性)中指定连接 URL。

例如,如果您不想费心设置 JNDI 等,只是想创建一个 JMS 连接,您可以执行以下操作

ConnectionFactory factory = new ActiveMQConnectionFactory(“tcp://somehost:61616”); Connection connection = factory.createConnection();

协议摘要

协议 示例 描述 服务器?
VM vm://host:port 客户端在同一个 JVM 中相互连接。这确实使用了异步通道和一个单独的工作线程。您可以使用查询参数(例如 vm://127.0.0.1?async=false)启用同步发送。
TCP tcp://host:port 客户端连接到给定 URL 上的代理
SSL ssl://host:port 客户端连接到给定 URL 上的代理
故障转移 failover:(Uri1,Uri2,Uri3,…,UriN) 提供一个要连接的可能 URI 列表,并随机选择一个。如果连接失败,则传输将自动重新连接到另一个。  
对等 peer://serviceName 创建一个给定服务名称的节点的纯点对点网络。在对等模式下,没有服务器,节点只是自动连接并建立一个对等网络。serviceName 允许您将网络相互分离,例如开发、测试、UAT 和生产。  
发现 discovery://host:port 使用 发现 连接到正确通道名称的可用代理。如果可以找到多个代理,则随机选择一个。如果连接失败,则选择另一个代理(如果有)。  
Zeroconf zeroconf:_activemq.broker.development. 使用 Zeroconf 连接到正确 Zeroconf 服务名称的可用代理。如果可以找到多个代理,则随机选择一个。如果连接失败,则选择另一个代理(如果有)。  
HTTP http://host:port 客户端使用 HTTP 隧道连接到代理,并使用适合通过防火墙的 XML 有效负载。
UDP udp://host:port 客户端连接到给定 URL 上的代理  
多播 multicast://host:port 没有服务器,虽然只适用于发布/订阅。一个纯点对点网络,所有流量都在其中多播,并且过滤是在客户端执行的。  

上面的“服务器”列表示明协议是否可以在 ActiveMQ Classic 代理传输连接器中使用。所有上述协议都可以在 JMS 客户端中用于连接到消息传递结构;只有那些指示的协议可以在代理端传输连接器中使用。

连接到 ActiveMQ Classic 代理时,这可能驻留在您的 JVM 中本地,或者驻留在其他机器上的远程位置。如果您想启用在 JVM 中部署 ActiveMQ Classic,您可以在 ActiveMQConnectionFactory 上启用 useEmbeddedBroker 属性。

请参考 拓扑结构概述,了解我们如何在许多不同的拓扑结构中使用 ActiveMQ Classic 来满足您的消息传递需求。

指定要连接的多个 URL

如果您想要完整的 高可用性 来提供故障转移和自动重新连接,您可以使用“failover:”前缀

failover:(tcp://foo:61699,tcp://bar:61617,tcp://whatnot:61698)

有关更多详细信息,请参阅 配置传输

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