ActiveMQ默認的傳輸協議是TCP
在activemq的配置文件 /conf/activemq.xml可對配置文件進行修改和查看
tcp:openwire : 它是默認的
tcp在網絡傳輸前需要序列化數據,消息通過一個叫wire protocol的來序列化成字節流
默認情況下ActiveMQ把wire protocol叫做OpenWire,目的是促使網絡上的效率和數據快速交互
tcp連接的URL:tcp://hostname:port?key=value&key=value,參數可選,如下
配置為NIO,因為NIO的性能很好,所以一般都是用NIO
<transportConnectors> <transportConnector name="nio" uri="nio://0.0.0.0:61616"/> </<transportConnectors>
官網配置地址:http://activemq.apache.org/configuring-transports
如果不特別指定ActiveMQ的網絡監聽端口,這些端口都將使用BIO網絡IO模型,如OpenWire,STOMP,AMQP等,
所以為了為提高吞吐量,我們應該指明為nio
詳細配置NIO:
1.配置文件加上NIO
可以看到此時多出了一個nio
URL修改為:
URL是以"nio"開頭,表示這個端口使用以TCP協議為基礎的NIO網絡,但是這樣的設置方式,只能使這個端口支持OpenWire協議
怎么讓這個端口既支持NIO,又支持多個協議呢?
使用auto關鍵字
配置詳情:http://activemq.apache.org/auto
<transportConnector name="auto+nio" uri="auto+nio://localhost:5671"/>
參數:
activemq.xml