ActiveMQ四

传输协议

ActiveMQ 支持的协议:TCP 、 UDP、NIO、SSL、HTTP(S) 、VM

一般常用TCP和NIO

在activemq/conf/activemq.xml中可以进行配置
在这里插入图片描述
默认使用的是第一个 openwire 也就是 tcp 连接
默认的Broker 配置,TCP 的Client 监听端口 61616 ,在网络上传输数据,必须序列化数据,消息是通过一个 write protocol 来序列化为字节流。默认情况 ActiveMQ 会把 wire protocol 叫做 Open Wire ,它的目的是促使网络上的效率和数据快速交互 。

1、TCP传输协议

在这里插入图片描述

使用tcp的语法:tcp://hostname:port?key=value
具体的参数可选,可以参考官网:https://activemq.apache.org/tcp-transport-reference

2、NIO传输协议

NIO协议为ActiveMQ提供了更好的性能

在这里插入图片描述
连接形式:nio://hostname:port?key=value

这个需要在activemq.xml中配置

<transportConnector name="nio" uri="nio://0.0.0.0:61618?trace=true"/>

在这里插入图片描述配置完成后重启mq,可以看到这里会多一个nio的连接协议
在这里插入图片描述
使用nio协议,我们只需要把连接的url改为nio的就可以了,代码和tcp的一样

//public static final String ACTIVEMQ_URL = "tcp://xxx.xxx.xxx.xxx:61616";
public static final String ACTIVEMQ_URL = "nio://xxx.xxx.xxx.xxx:61618";

3、NIO增强
URI 格式以 nio 开头,表示这个端口使用 tcp 协议为基础的NIO 网络 IO 模型,但这样设置让它只支持 tcp 、 nio 的连接协议。如何让它支持多种协议?

这里要用到auto的方式,它可以支持 STOMP、 AMQP MQTT、 TCP、 NIO 多种协议

用法:
还是在activemq.xml中配置

<transportConnector name="auto+nio" uri="auto+nio://0.0.0.0:61608?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;org.apache.activemq.transport.nio.SelectorManager.corePoolSize=20&amp;org.apache.activemq.transport.nio.Se1ectorManager.maximumPoo1Size=50"/>

同样这里会多出一个连接协议
在这里插入图片描述
代码也只需要修改url即可

public static final String ACTIVEMQ_URL = "nio://192.168.24.132:61608";

注意:
这里只针对于TCP和NIO协议的代码相同,但不代表其他协议的代码也相同,因为底层的配置不同,所以在使用其他协议时需要修改除url以外的其他代码

各种协议的对比:
http://activemq.apache.org/configuring-version-5-transports.html
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值