- ActiveMQ 支持的client-borker通讯协议有:TCP、NIO、UDP、SSL、HTTP(s)、VM 等,
其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<transportConnectors>标签之内。
在上文给出的配置信息中,
URI描述信息的头部都是采用协议名称:例如
描述amqp协议的监听端口时,采用的URI描述格式为“amqp://······”;
描述Stomp协议的监听端口时,采用URI描述格式为“stomp://······”;
唯独在进行openwire协议描述时,URI头却采用的“tcp://······”。这是因为ActiveMQ中默认的消息协议就是openwire - 修改使用传输协议为nio
引入标签:<transportConnector name="nio" uri="nio://0.0.0.0:61618?trace=true" />
修改发送端和接收端的传输协议
URI格式以"nio"开头,代表这个端口使用TCP协议为基础的NIO网络模型。但是这样的设置方式,只能使这个端口支持Openwire协议。
我们怎么能够让这个端口既支持NIO网络模型,又让他支持多个协议呢?使用auto关键字,使用"+"符号来为端口设置多种特性,如果我们既需要使用某一个端口支持NIO网络模型,又需要它支持多个协议,使用auto关键字(ActiveMQ),使用"+"符号来为端口设置多种特性,如果我们既需要使用某一个端口支持NIO网络模型,又需要它支持多个协议。
将以下代码配置到配置文件中:
<transportConnector name="auto+nio" uri="auto+nio://0.0.0.0:61608?maximumConnections=1000&wireFormat.maxFrameSize=104857600&org.apache.activemq.transport.nio.SelectorManager.corePoolSize=20&org.apache.activemq.transport.nio.SelectorManager.maximumPoolSize=50" />,如下图所示
发送和接收消息的url修改为: