一.概述
ActiveMQ支持的client-roker通讯协议有:TCP,NIO,UDP,SSL,Http(s),VM。
其中配置Transport Connector的文件在activeMQ安装目录的conf/activemq.xml中的标签之内。
二.修改配置文件流程
1.备份文件
(1)指令
//删除文件的指令
rm -rf 当前文件夹下的文件
//复制文件
cp 被复制的文件名 复制后的文件名
(2)范例
2.修改配置文件
(0)说明
URI描述信息的头部都是采用协议名称:例如
描述amqp协议的监听端口时,采用的URI描述格式为“amqp://…”
描述Stomp协议的监听端口时,采用的URI描述格式为“stomp://…”
唯独在进行openwire协议描述时,URI头却采用的“tcp://…”。这是因为ActiveMQ中默认的消息协议就是openwire。
(1)指令
# 显示行号
:set nu
# 编译文件,需要在conf文件夹下执行该指令
vim activemq.xml
#
(2)范例
3.activemq的传输协议种类
(1)Transmission Control Protocol(TCP)我是默认
1.这是默认的Broker配置,TCP的Client监听端口61616
2.在网络传输数据前,必须要序列化数据,消息是通过一个叫wire protocol的来序列化成字节流。
3.TCP连接的URI形式如:tcp://hostname:prot?key=value&key=value,后面的参数是可选的。
4.TCP传输的优点:
(4.1)TCP协议传输可靠性高,稳定性强
(4.2)高效性:字节流方式传递,效率很高
(4.3)有效性、可用性:应用广泛,支持任何平台
5.关于Transport协议的可配置参数可以参考官网:http://activemq.apache.org/configuring-version-5-transports.html
(2)New I/O API Protocol(NIO)【重点】
1.NIO协议和TCP协议类似但NIO更侧重于底层的访问操作。它允许开发人员对同一资源可有更多的client调用和服务端有更多的负载。
2.适合使用NIO协议的场景:
(2.1)可能有大量的Client去连接到Broker上,一般情况下的大量的Client去连接Broker是被操作系统的系统所限制。因此NIO的实现比TCP需要更少的线程去运行,所以建议使用NIO协议。
(2.2)可能对于Broker有一个很迟钝的网络传输,NIO比TCP提供更好的性能。
3.关于Transport协议的可配置参数可以参考官网:http://activemq.apache.org/configuring-version-5-transports.html
(3)AMQP协议【了解】
Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开发标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。
(4)stomp协议【了解】
STOMP,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。
(5)Secure Sockets Layer Protocol(SSL)【了解】
(6)mqtt协议【了解】
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
(7)ws协议【了解】
(8)小总结
协议 | 描述 |
---|---|
TCP | 默认的协议,性能相对可以 |
NIO | 基于TCP协议之上,进行了扩展和优化,具有更好的扩展性 |
UDP | 性能比TCP更好,但是不具有可靠性 |
SSL | 安全链接 |
HTTP(S) | 基于HTTP或者HTTPS |
VM | VM本身不是协议,当客户端和代理在同一个Java虚拟机(VM)中运行时,他们之间需要通信,但不想占用网络通道,而是直接通信,可以使用该方式 |