20.2.5. 配置 Netty Servlet
Servlet 传输协议允许 HornetQ 流量通过 HTTP 传输到运行在 Servlet 引擎里的 Servlet 里,然后再重定向到 in-VM HornetQ 服务器。Netty HTTP 传输充当 Web 服务器侦听专有端口上的 HTTP 通讯。通过 servlet 传输,Servlet 引擎(可能已服务网站或其他应用程序)代理 HornetQ 流量。
为了配置 servlet 引擎使用 Netty Servlet 传输协议,您需要执行下列步骤:
- 部署 servlet:下面的例子描述了一个使用 servlet 的 Web 应用程序:
<web-app> <servlet> <servlet-name>HornetQServlet</servlet-name> <servlet-class>org.jboss.netty.channel.socket.http.HttpTunnelingServlet</servlet-class> <init-param> <param-name>endpoint</param-name> <param-value>local:org.hornetq</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HornetQServlet</servlet-name> <url-pattern>/HornetQServlet</url-pattern> </servlet-mapping> </web-app>
初始参数endpoint
指定 Servlet 将转发数据包的 Netty 接收器的 host 属性。 - 在服务器端的配置里插入 Netty servlet 接收器:下例展示了服务器配置文件里的接收器定义(
standalone.xml
和domain.xml
):<acceptors> <acceptor name="netty-servlet"> <factory-class> org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory </factory-class> <param key="use-servlet" value="true"/> <param key="host" value="org.hornetq"/> </acceptor> </acceptors>
- 最后一步是在服务器配置文件(
standalone.xml
和domain.xml
)里为客户定义接收器:<netty-connector name="netty-servlet" socket-binding="http"> <param key="use-servlet" value="true"/> <param key="servlet-path" value="/messaging/HornetQServlet"/> </netty-connector>
- 添加下列接收器配置,您也可以使用基于 SSL 的 Servlet 传输:
<netty-connector name="netty-servlet" socket-binding="https"> <param key="use-servlet" value="true"/> <param key="servlet-path" value="/messaging/HornetQServlet"/> <param key="ssl-enabled" value="true"/> <param key="key-store-path" value="path to a key-store"/> <param key="key-store-password" value="key-store password"/> </connector>
警告
通过 HTTP tunneling servlet 连接的客户不支持自动失效切换。
注意
Netty servlet 无法用于配置 EAP 服务器以设立 HornetQ 群集。