ActiveMQ 传输协议总结

ActiveMQ支持的client-broker:

[size=large][color=red][b]Transmission Control Protocol (TCP)[/b][/color][/size]
这是默认的Broker配置,TCP的Client监听端口是61616。

在网络传输数据前,必须要序列化数据,消息是通过一个叫wire protocol的来序列化成字节流。目的是促使网络上的效率和数据快速交互。

TCP连接的URI形式:[b]tcp://hostname:port?key=value&key=value[/b],加粗部分是必须的

TCP协议传输可靠性高,稳定性强,支持任何平台

[size=medium][color=red][b]New I/O API Protocol[/b][/color][/size]
NIO协议和TCP协议类似,但NIO更侧重于底层的访问操作。它允许开发人员对同一资源可有更多的client调用和服务端有更多的负载。

适合使用NIO协议的场景:
(1) 可能有大量的Client去链接到Broker上
一般情况下,大量的Client去链接Broker是被操作系统的线程数所限制的。因此, NIO的实现比TCP需要更少的线程去运行,所以建议使用NIO协议
(2)可能对于Broker有一个很迟钝的网络传输 NIO比TCP提供更好的性能

NIO连接的URI形式:nio://hostname:port?key=value
Transport Connector配置示例:
<transportConnectors>
<transportConnector name="tcp"
uri="tcp://localhost:61616?trace=true" /> <transportConnector
name="nio"
uri="nio://localhost:61618?trace=true" /> </transportConnectors>


[size=medium][color=red][b]User Datagram Protocol(UDP)[/b][/color][/size]
UDP仅仅是一个链接协议,所以它没有可靠性之说

TCP是被用在稳定可靠的场景中使用的;UDP通常用在快速数据传递和不怕数据丢失的场景中,还有ActiveMQ通过防火墙时,只能用UDP

UDP连接的URI形式:udp://hostname:port?key=value
<transportConnectors>
<transportConnector
name="udp"
uri="udp://localhost:61618?trace=true" /> </transportConnectors>

[size=medium][color=red][b]Secure Sockets Layer Protocol (SSL)[/b][/color][/size]
连接的URI形式:ssl://hostname:port?key=value

Transport Connector配置示例:
<transportConnectors>
<transportConnector name="ssl" uri="ssl://localhost:61617?trace=true"/>
</transportConnectors>


[size=medium][color=red][b]VM Protocol(VM)[/b][/color][/size]
VM transport允许在VM内部通信,从而避免了网络传输的开销。这时候采用的连接不是socket连接,而是直接的方法调用。

第一个创建VM连接的客户会启动一个embed VM broker,接下来所有使用相同的broker name的VM连接都会使用这个broker。当这个broker上所有的连接都关闭的时候,这个broker也会自动关闭。

[b]连接的URI形式:vm://brokerName?key=value[/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值