ActiveMQ官方文档翻译-配置Transport

Transport配置选项

你首选会做的第一件事件可能就是使用一种transport URI来连接上一个borker。通常情况下你首先会使用TCP或VM这两种transport。

小心空白字符
以下所有的URI配置都是基于java.net.URI类的,该类不允许使用空白字符。所以当你使用failover:或static:这两种URI时请不要在逗号周围放置空白字符。

VM Transport

 VM transport允许在VM内部通信,从而避免了网络传输的开销。这时候采用的连接不是socket连接,而是直接地方法调用。 第一个创建VM 连接的客户端会启动一个embed VM broker,接下来所有使用相同的brokername的VM连接都会使用这个broker。当这个broker上所有的连接都关闭的时候,这个broker也会自动关闭。

更多细节请参考VM Transport指南

AMQP Transport

从5.8.0以后,ActiveMQ已经支持AMQP协议了。更多的细节请参考AMQP Transport指南。

MQTT Transport

从5.6.0版本以后,ActiveMQ已经支持MQTT协议。这是一个轻量级的发布/订阅消息传输协议。更多细节请参看MQTTTransport指南。

TCP Transport

TCP transport 允许客户端通过TCP socket连接到远程的broker。

更多细节请参看TCP Transport指南。

NIO Transport

NIO Transport和TCP transport 的作用是一样的,只不过NIO Transport使用了java的NIO包,这可能可以提供更好的性能。请注意不要把java的NIO包和IBM的 AIO4J包混淆了。

从TCP切换到NIO,只需要简单的修改URI的schema部分。下面是一个简单的xml配置文件的例子。

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

Trying to use nio transport url on the client side will instantiate the regular TCP transport.

SSL Transport

SSL Transport允许你在TCP的基础上使用SSL。

更多细节请参考SSLTransport指南。

NIO SSL Transport

5.6版本以后可用。

在NIO的基础上实现SSL transport。这允许你在单个broker实例上创建大量的SSL客户端连接。服务端的transport选项只需要作以下配置:

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

Trying to use nio+ssl transport url on the client side will instantiate the regular SSL transport.

Peer Transport

Peer transport通过ActiveMQ提供了一个点对点的传输网络。原理实际上是一端通过VM transport连接上本地的内嵌的broker,然后再通过配置让这个内嵌的broker通过网络连接连上另一端的内嵌的broker。

更多细节请参见Peer Transport指南。

UDP Transport

UDP Transport允许你使用UDP协议。

更多细节请参考UDPTransport指南。

Multicast Transport

这允许你使用组播传输

更多细节请参考 Multicast Transport Reference

HTTP and HTTPS Transport

允许ActiveMQ的客户端和服务端通过http协议进行通信。如果客户端不是JMS的话,你可以参看REST或Ajax的支持。

更多细节请查看HTTP and HTTPs Transports Reference

WebSockets Transport

这个Transport使用新的html5 websocket来和borker进行信息交互。更多细节请参考WebSockets Transport Reference

Stomp Transport

一个简单的可以使用多种编程语言进行文本传输的机制。更多细节请参考 Stomp。

通用的URI

你可以通过URL表达式配置其它的特性,如下:

连接配置

所有的ActiveMQ JMS连接都可以通过URI或通过编程的方式在 ActiveMQConnection或ActiveMQConnectionFactory中明确的设置连接属性。

更多细节请参考Connection Configuration URI

Destination Options

通过Destination Options(它可以通过URI表达式配置目标地址)你可以配置各种与消费者相关的选项。

Broker 配置

你可以使用Broker Configuration URI来配置一个内嵌的Broker,它即支持通过使用java语言来使用BrokerFactory帮助类也支持通过使用ActiveMQ的shell脚本。更多细节请参考 How to Run a Broker。

高级协议URI

下面的高级协议也可以通过URI的方式进行配置

Failover Transport

Failover Transport是一种重新连接的机制,它工作于其它transport的上层,用于建立可靠的传输。它的配置语法允许制定任意多个复合的URI。Failover transport会自动选择其中的一个URI来尝试建立连接。如果没有成功,那么会选择一个其它的URI来建立一个新的连接。

更多细节请参考 Failover Transport Reference

Fanout Transport

Fanout Transport是一种重新连接和复制的机制,它工作于其它transport的上层。它采用复制的方式把消息复制到多个broker。

更多细节请参考Fanout Transport Reference

使用Discovery

经常在使用类似tcp transport的时候你可能会想使用 Discovery来定位可用的Broker.这有别于Multicast,因为这个机制实际上主要是使用TCP,而Multicast是纯粹用来使用发现borker的位置。

Discovery Transport

Discovery transport是可靠的tranport。它使用Discovery transport来定位用来连接的URI列表。

更多细节请参考Discovery Transport Reference

ZeroConf Transport

The ZeroConf transport provides Discovery and it works like the Discovery Transport but rather than using our own multicast based discovery mechanism (which allows you to configure the exact multicast address and port, etc.), the ZeroConf transport is used instead.

更多细节请参考ZeroConf Transport Reference

服务端选项

有许多选项用来配置服务端的TransportConnector。如下:

属性名
默认值 描述
uri null
name null
discoveryURI null
enableStatusMonitor false
updateClusterClients false
rebalanceClusterClients false
updateClusterClientsOnRemove false
updateClusterFilter null
allowLinkStealing false

注意:红色字体的属性是5.1.0以后才有的属性。

下面是一个例子:

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

原文链接

Configuring Version 5 Transports

你可能感兴趣的:(ActiveMQ官方文档翻译-配置Transport)