Activemq的端口监听介绍及端口优化

本文详细解析了ActiveMQ的配置文件activemq.xml中transportConnectors字段的作用,包括不同协议的端口配置、最大连接数及消息大小限制等内容,并介绍了如何为提高性能进行NIO模型的配置。

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

在activemq的conf/activemq.xml主配置文件里,有这样一段话,如图:

wKioL1hOO8GREhQQAAEBIUDtPqU599.png

 

这个图里里的transportConnectors字段就是mq对各个网络协议端口的规定,由图可见,openwire这个name使用的接入端口是61616,amqp这个name的接入端口号是5672。name里的值是随便写的,它也会体现在mq的web Connections界面里,而0.0.0.0是代表本机所有设备的意思,注意这里不可以写127.0.0.1或者localhost,这样写的话mq是无法连上网的。再往后面看,后面也规定对应name的端口最大的链接数是1000,wireFormat.maxFrameSize的意思是“一个完整消息的大小”,这里规定是100M。

 

这里补充一句,Activemq默认的消息协议是openwire,他是tcp。

 

在“transportConnector”标记中,除了必须填写的“name”属性和“uri”属性以外还有一些可选择的属性,例如:enableStatusMonitor、updateClusterClients。详细的属性介绍可参考官方文档 http://activemq.apache.org/configuring-transports.html 中 “Server side options”部分章节的介绍。

 

在activemq的5.13.x里,apache公司把这一段内容进行了简化,变成了下面的样子。

wKioL1hOPwegzhz7AAApmMEnsFQ441.png

那些七七八八的协议统一整合成了一个auto,对单个协议的设定也是大锅烩了。这样的设置由于没有特别指定activemq的网络监听端口,所以它默认使用的是BIO的网络IO模型,而对于tcp为主的网络架构,我们应该特别说明要用的是NIO网络模型,所以我们更改配置如下:


wKioL1hOQIDzR7B-AAAoLpQHMg8097.png

这么改完之后,只有tcp协议才能通过,如果除了tcp还有其他的协议怎么办?

 

wKioL1hORXfjoFpuAAAWhQFGPfM762.png

改成这样就行了。

 

如果为了彰显逼格以及让你的mq更加坚挺,我们还应该增加如下的字段:

1
<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.SelectorManager.maximumPoolSize=50"  />

 

这里还额外设置NIO使用的线程池核心工作线程数量和最大工作线程数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值