Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.2.5. Netty サーブレットの設定

サーブレットトランスポートを使用すると、HTTP 経由で HornetQ トラフィックをサーブレットエンジンで稼働しているサーブレットにトンネリングし、インVM HornetQ サーバーへリダイレクトできます。Netty HTTP トランスポートは、特定ポートで HTTP トラフィックをリッスンする Web サーバーとして機能します。サーブレットトランスポートでは HornetQ トラフィックは、すでに Web サイトや他のアプリケーションを提供している可能性のあるサーブレットエンジンを介してプロキシーされます。
Netty サーブレットトランスポートが動作するようにサーブレットエンジンを設定するには、以下の手順に従います。
  • サーブレットをデプロイします。以下の例はサーブレットを使用する 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>
    
    init パラメーター エンドポイント は、サーブレットがパケットを転送する Netty アクセプターのホスト属性を指定します。
  • Netty サーブレットアクセプターをサーバー側の設定に挿入します。以下の例は、サーバー設定ファイル(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 上でも使用できます。
    <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"/>
    </netty-connector>
    
警告
自動クライアントフェールオーバーは、HTTP トンネリングサーブレットを介して接続しているクライアントに対してはサポートされません。
注記
HornetQ クラスターの設定するために Netty サーブレットを使用して EAP 6 サーバーを設定することはできません。