ActiveMQ的传输协议

本文深入解析ActiveMQ支持的多种通信协议,包括TCP、NIO、AMQP、STOMP、SSL、MQTT及WS等,探讨了协议配置与优化策略,如使用NIO提升网络吞吐量,以及如何支持多种协议的配置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

  • 官网:协议介绍
  • ActiveMQ支持的client-to-broker的通信协议如下:TCP,NIO,UDP,SSL,Http(s),VM.
  • 其中配置Transport Connector的文件在activemq.xml中的的标签之内.

协议类别

  • TCP(默认)
  • NIO
  • AMQP协议
  • stomp协议
  • SSL
  • mqtt
  • ws(前端)

TCP

  1. 默认的Broker配置,TCP的Client监听端口61616
  2. 在网络传输数据前,必须要序列化数据消息是通过一个叫write protocol的来序列化成字节流
    1. 默认情况下ActiveMQ把write protocol叫做OpenWire,它的目的是促使网络上的效率和数据快速交互.
  3. TCP的URI形式
    1. tcp://hostname:port?key=value&key=value
  4. 优点
    1. 可靠性高,稳定性强
    2. 高效性:字节流方式传递,效率很高
    3. 有效性,可用性:应用广泛,支持任何平台
  5. 配置
    1. 参考官网

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关键字
    • 使用"+"符号来为端口设置多种属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值