问题一、默认的61616端口如何更改?
问题二、你生产上的链接协议如何配置的?使用tcp吗?
ActiveMQ 支持的client-broker 通讯协议有:TVP、NIO、UDP、SSL、Http(s)、VM。
其中配置TransportConnector 的文件在ActiveMQ 安装目录的conf/activemq.xml 中的标签之内。
activemq 传输协议的官方文档:http://activemq.apache.org/configuring-version-5-transports.html
The transport connectors expose ActiveMQ over a given protocol to clients and other brokers. For more information, see:
暴露了ActiveMq按照它给定的协议对于客户端和其他的mq更多的信息参考以下链接
http://activemq.apache.org/configuring-transports.html
<transportConnectors>
112
113 <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
114 <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
115 <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
116 <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
117 <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
118 transportConnectors>
Transmission Control Protocol(TCP)
Same as the TCP transport, except that the New I/O (NIO) package is used, which may provide better performance. The Java NIO package should not be confused with IBM’s AIO4J package.
To switch from TCP to NIO, simply change the scheme portion of the URI. Here’s an example as defined within a broker’s XML configuration file.
与TCP传输相同,只是使用了新I/O(NIO)包,这可能会提供更好的性能。Java NIO包不应与IBM的AIO4J包混淆。
要从TCP切换到NIO,只需更改URI的scheme部分。下面是一个在代理的XML配置文件中定义的示例。
<broker>
...
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
<transportConnectors>
...
broker>
Trying to use nio transport url on the client side will instantiate the regular TCP transport. For more information see the NIO Transport
Reference 尝试在客户端使用nio传输url将实例化常规TCP传输。有关更多信息,请参阅NIO传输参考
Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件限制。
<transportConnectors>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672"/>
transportConnectors>
STOP,Streaming Text Orientation Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息中间件)设计的简单文本协议。
<transportConnectors>
<transportConnector name="stomp" uri="stomp://localhost:61613"/>
transportConnectors>
安全加固协议
ssl://localhost:61616?trace=false
<transportConnectors>
<transportConnector name="ssl" uri="ssl://localhost:61618?trace=true"/>
transportConnectors>
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输
)是IBM开发的一个即时通讯协议,据说有可能成为物联网的重要组成部分。该协议支持所有平台,更多的是偏硬件,几乎可以把所有联网物品和外部连接起来,被用来当作传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
扩展:https://github.com/fusesource/mqtt-client
This transport uses the new HTML5 WebSockets to exchange messages with the broker. For more information see the WebSockets Transport Reference
此传输使用新的HTML5WebSockets与代理交换消息。有关更多信息,请参阅WebSockets传输参考
<transportConnectors>
<transportConnector name="websocket" uri="ws://0.0.0.0:61614"/>
transportConnectors>
生产者
public static final String ACTIVEMQ_URL = “nio://IP地址:61618”; //测试nio 协议
问题
nio
开头,表示这个端口使用以TCP协议为基础的NIO网络IO模型那么我们怎么既让这个端口支持NIO网络IO模型,又让它支持多个协议呢?
解决
+
符号来为端口设置多种特性需要某一个端口支持NIO网络IO模型
,又需要它支持多个协议
auto
: 争对所有协议,他会识别我们是什么协议nio
:使用NIO网络IO模型小知识
<transportConnector name="auto+nio" uri="auto+nio://localhost:5671"/>