VM Transport Reference 基于虚拟机通信的说明
虚拟机传输允许客户端在虚拟机内部进行通信,这种方式就不需要额外搭建网络通信了。虚拟机传输的连接方式使用的并非socket连接,而是直接连接,这种连接因为是内部的消息通信而带来较高的性能。
第一个客户端连接虚拟机时将会启动内嵌的broker。之后的连接继续使用这一相同的broker。一旦连接到broker的连接都关闭,那么对应的内嵌broker将自动关闭。
简单的broker配置演示:
以下为配置虚拟机连接的语法,配置简单但只能创建少量的broker。
vm://brokerName?transportOptions
如果你想连接一个已经实例化的内嵌broker(比如在Apache ServiceMix中)
请确保你的 vm://brokerName 配置中的 brokerName 与正在运行的broker一致.
配置项说明
Option Name | Default Value | Description |
marshal | false | 如果为true , 每个传输都需被管理. |
wireFormat | default | The name of the WireFormat to use |
wireFormat.* |
| 所有的前缀配置都将用于wireFormat的配置 |
create | true | If the broker should be created on demand if it does not already exist. |
waitForStart | -1 | 如1>0 将根据需要自行创建broker |
broker.* |
| All the properties with this prefix are used to configure the broker. See Configuring Wire Formats for more information |
Example URI
vm://broker1?marshal=false&broker.persistent=false
内嵌broker的注意事项 如果你使用虚拟机传输并希望更明白的配置内嵌broker。你可以在borker启动之前,创建一个JMS连接。如果你使用虚拟机传输并没配置的话,ActiveMQ会自动创建一个broker。 如使用Spring,你或许希望能通过depends-on之类的属性配置。这样就能在JMS工厂类就能与内嵌broker一同使用,参考配置如下: <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean"> <property name="config" value="classpath:org/apache/activemq/xbean/activemq.xml" /> <property name="start" value="true" /> </bean>
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" depends-on="broker"> <property name="brokerURL" value="vm://localhost" /> </bean>
|
Broker的高级配置
这是虚拟机连接的进阶配置。你可以通过broker配置url的方式进行配置,如:
vm:(broker:(tcp://localhost)?brokerOptions)?transportOptions
or
vm:broker:(tcp://localhost)?brokerOptions
配置项说明
Option Name | Default Value | Description |
marshal | false | If true, forces each command sent over the transport to be marshalled and unmarshalled using a WireFormat |
wireFormat | default | The name of the WireFormat to use |
wireFormat.* |
| All the properties with this prefix are used to configure the wireFormat |
举例:
vm:(broker:(tcp://localhost:6000)?persistent=false)?marshal=false
通过外部文件来配置举例:
vm://localhost?brokerConfig=xbean:activemq.xml