4.5. 管理多路复用

AMQ 提供了多种服务,如消息服务,JNDI服务等等。一般来讲,每种服务都是相对独立的,应用程序通常通过基于TCP/IP协议的连接对服务进行访问,这样,在对服务器进行管理时,往往需要对每个服务使用的端口号等资源进行设置,在某些情况下,带来了服务器管理的不便。

4.5.1. 理解多路复用

Internet的规范中指定了一些协议使用的端口号,通常,这些端口中的大多数都广为人知,但是就 AMQ 本身,许多服务都需要指定所使用的端口号,而这些服务所应使用的端口号在现行的Internet相关的规范或标准中没有指定。

通常情况下, AMQ 自行规定这些服务所使用的端口号,加大了 AMQ 管理的复杂性。

基于IETF的TCPMUX(RFC1078), AMQ 指定了一个多路复用端口(缺省为4888),在此端口上提供多种服务,客户应用只需向多路复用端口发出请求,服务器通过分析客户请求,将其转发给相关的服务或是拒绝此请求。

这样,在管理 AMQ 时,对于在多路复用端口上提供的多种服务,只指定一个多路复用端口即可进行管理。

目前, AMQ 的消息服务、JNDI服务,在一个端口上进行复用。

4.5.2. 管理与配置

4.5.2.1. 在配置文件中配置

编辑 APUSIC_MQ_HOME/config/mq.conf 文件中相关配置段。

缺省的在mq.conf 配置文件中的多路复用配置段如下:

...
<SERVICE
    CLASS="com.apusic.net.Muxer"
    >
    <ATTRIBUTE NAME="Port" VALUE="4888"/>
    <ATTRIBUTE NAME="Backlog" VALUE="50"/>
    <ATTRIBUTE NAME="Timeout" VALUE="300"/>
    <ATTRIBUTE NAME="MaxWaitingClients" VALUE="500"/>
    <ATTRIBUTE NAME="WaitingClientTimeout" VALUE="5"/>
    <ATTRIBUTE NAME="SSLEnabled" VALUE="True"/>
    <ATTRIBUTE NAME="SecurePort" VALUE="4889"/>
    <ATTRIBUTE NAME="KeyStore" VALUE="config/sslserver"/>
    <ATTRIBUTE NAME="KeyPassword" VALUE="keypass"/>
</SERVICE>
...

目前,提供的多路复用端口的可配置属性概述如下:

属性描述值类型缺省值
Port多路复用端口号;消息服务、JNDI服务等共用的连接端口。0~65535间未被占用的端口号4888
Backlog对于未处理的连接请求,可保持在此端口的输入队列中的最大数量。整型50
Timeout连接请求的等待时间。整型,单位为秒300
MaxWaitingClients表示当服务器过忙而无法及时响应请求时对请求排队的队列长度(针对SSL服务的配置,正常情况下不需要)。整型500
WaitingClientTimeout表示当队列已满时经过多长时间将请求抛弃(针对SSL服务的配置,正常情况下不需要)。整型,单位为秒5
SSLEnabled是否启用SSL通讯。“True”或“False”TRUE
SecurePortSSL通讯所使用的端口。0~65535间未被占用的端口号4889
KeyStore保存服务器密钥和证书的密钥库文件。密钥库文件相对于 AMQ 安装目录的路径和文件名config/sslserver
KeyPasswordKeyStore密钥库的管理密码和密钥密码。管理密码和密钥密码必须相同keypass

4.5.2.2. 使用 AMQ 管理工具进行配置

使用管理工具对多路复用服务进行配置时,只能配置登录的服务器,无法配置远程的服务器。双击登录节点的系统服务,在页面的“多路复用服务”中可以对登录服务器的多路复用服务进行配置。配置完参数之后,需要提交更新并重启该节点的 AMQ 服务器才能使配置生效。

AMQ管理工具

图 4.4. AMQ管理工具