ActiveMQ认识和深入(五),传输协议

本文介绍了ActiveMQ支持的各种传输协议,包括TCP、NIO、UDP、SSL等,并详细解析了每种协议的特点及适用场景。同时提供了配置示例,帮助读者理解如何在实际应用中选择合适的协议。

ActiveMQ传输协议


ActiveMQ 支持的 client-broker 通讯协议有:TCP、NIO、UDP、SSL、HTTP(S)、VM。

其中配置 Transprot Connector 的文件在 activeMQ 安装目录的 conf/activemq.xml 中的标签之内。

在这里插入图片描述

在上面截图给出的配置信息中,

URI描述信息的头部都的是采用协议名称:例如

  • 描述amqp 协议 的监听端口时,采用的URI描述格式为“amqp://…”;
  • 描述stomp 协议 的监听端口时,采用的URI描述格式为“stomp://…”;

唯独在进行openwire协议描述时,URI头却采用的“tcp://…”。(MQ默认的消息协议就是openwire)

官网地址:(https://activemq.apache.org/configuring-version-5-transports)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Transmission Control Protocol(TCP)


  • 默认Broker配置,TCP的client监听端口61616
  • 在网络传输数据前,必须要序列化数据,消息是通过一个叫 wire protocl的来序列化成字节流。默认情况下ActiveMQ把 wire protocol 叫做 OpenWire,它的目的是促使网络上的效率和数据快速交互。
  • TCP连接URI形式如:tcp://hostname:port?key=value,后面参数是可选
  • TCP传输的优点: TCP协议传输可靠性高,稳点性强。 高效性,字节流方式传递,效率高。有效性,可用性,应用广泛,支持任何平台

官网地址:(https://activemq.apache.org/tcp-transport-reference)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

New I/O (NIO) API Protocol(NIO)


  • NIO协议和TCP协议类似但NIO更侧重于底层的访问操作。它允许开发人员对同一资源可有更多的client调用和服务端有更多的负载
  • 适合使用NIO协议场景:
    1. 可能有大量的Client去连接到Broker上,一般情况下,大量的Client去连接Broker是被操作系统的线程所限制的。因此,NIO的实现比TCP需要更少的线程去运行。所以建议使用NIO协议;
    2. 可能对于Broker有一个很迟钝的网络传输,NIO比TCP提供更好的性能。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AMQP协议


即 Advanced Message Queuing Protocal ,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开发标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品。不同开发语音条件的限制。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

stomp 协议


在这里插入图片描述

SSL 协议


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mqtt协议


MQTT(Message Queuing Telemetry Transport,消息队列遥测传输) 是IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有物联网和外部连接起来,被用来当做致动器

官网地址:(https://mqtt.org/)

在这里插入图片描述

MQ官网地址:(https://activemq.apache.org/mqtt)

github地址:(https://github.com/fusesource/mqtt-client)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ws协议


WebSockets

在这里插入图片描述

Auto 自动加强 协议


多协议 通信

官网地址:(https://activemq.apache.org/auto)

在这里插入图片描述

修改配置文件

<transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024"/>
            <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024"/>
            <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024"/>
            <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024"/>
		    <!--<transportConnector name="nio" uri="nio://0.0.0.0:61616?trace=true"/>-->
			<transportConnector name="auto+nio" uri="auto+nio://0.0.0.0:61608?maximumConnections=1000&amp;wireFormat.maxFrameSize=1024&amp;org.apache.activemq.transport.nio.SelectorManager.corePoolSize=20&amp;org.apache.activemq.transport.nio.SelectorManager.maximumPoolSize=50" />
        </transportConnectors>
重新启动mq

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可乐cc呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值