ActiveMQ默认的传输协议是TCP
在activemq的配置文件 /conf/activemq.xml可对配置文件进行修改和查看
tcp:openwire : 它是默认的
tcp在网络传输前需要序列化数据,消息通过一个叫wire protocol的来序列化成字节流
默认情况下ActiveMQ把wire protocol叫做OpenWire,目的是促使网络上的效率和数据快速交互
tcp连接的URL:tcp://hostname:port?key=value&key=value,参数可选,如下
配置为NIO,因为NIO的性能很好,所以一般都是用NIO
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
</<transportConnectors>
官网配置地址:http://activemq.apache.org/configuring-transports
如果不特别指定ActiveMQ的网络监听端口,这些端口都将使用BIO网络IO模型,如OpenWire,STOMP,AMQP等,
所以为了为提高吞吐量,我们应该指明为nio
详细配置NIO:
1.配置文件加上NIO
可以看到此时多出了一个nio
URL修改为:
URL是以"nio"开头,表示这个端口使用以TCP协议为基础的NIO网络,但是这样的设置方式,只能使这个端口支持OpenWire协议
怎么让这个端口既支持NIO,又支持多个协议呢?
使用auto关键字
配置详情:http://activemq.apache.org/auto
<transportConnector name="auto+nio" uri="auto+nio://localhost:5671"/>
参数:
activemq.xml