基本概念
- 官网:协议介绍
- ActiveMQ支持的client-to-broker的通信协议如下:TCP,NIO,UDP,SSL,Http(s),VM.
- 其中配置Transport Connector的文件在activemq.xml中的的标签之内.
协议类别
- TCP(默认)
- NIO
- AMQP协议
- stomp协议
- SSL
- mqtt
- ws(前端)
TCP
- 默认的Broker配置,TCP的Client监听端口61616
- 在网络传输数据前,必须要序列化数据消息是通过一个叫write protocol的来序列化成字节流
- 默认情况下ActiveMQ把write protocol叫做OpenWire,它的目的是促使网络上的效率和数据快速交互.
- TCP的URI形式
- tcp://hostname:port?key=value&key=value
- 优点
- 可靠性高,稳定性强
- 高效性:字节流方式传递,效率很高
- 有效性,可用性:应用广泛,支持任何平台
- 配置
NIO
如果不特别指定ActiveMQ的网络监听端口,那么这些端口都将使用BIO网络IO模型.
所以为了首先提高单节点的网络吞吐量,我们需要明确指定Active的网络IO模型,
例:URI的格式以"nio"开头,表示这个端口使用以TCP协议为基础的NIO网络IO模型.
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616?trace=true"/>
</<transportConnectors>
优化
- 问题
- URI格式头以"nio"开头,表示这个端口使用以TCP协议为基础的NIO网络IO模型,但这样的设置方式,只能使这个端口支持Openwire协议.如何即支持nio又支持多个协议?
- 解决
- 使用auto关键字
- 使用"+"符号来为端口设置多种属性