2016-05-02 24 views
2

UDPストリームをTCP/HTTPに変換してWSO2 CEPに供給したい。したがって、UDPからHTTPへの変換では、WSO2 ESBを使用しました。私が見ることができるように、2000UDPのメッセージをESBプロキシでHTTPにスムーズに変換することは可能です。その場合、ESBは2.2GBのRAMを使いました。しかし、これ以上のパフォーマンスが必要です(毎秒約50,000回のコンバージョン)。WSO2 esb UDPからTCPへの変換 - パフォーマンスを改善する

私の変換ESBプロキシは次のとおりです。上記のパフォーマンスを達成する方法はありますか? (ここではHTTP NIOを使用しているESBを想定しています)。

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="UDPProxy" 
     transports="udp" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     <property name="OUT_ONLY" value="true" scope="default" type="STRING"/> 
     <payloadFactory media-type="xml"> 
      <format> 
       <events xmlns=""> 
        <event> 
        <metaData> 
         <http2>dddd</http2> 
        </metaData> 
        </event> 
       </events> 
      </format> 
      <args> 
       <arg value="eee"/> 
      </args> 
     </payloadFactory> 
     </inSequence> 
     <endpoint> 
     <address uri="http://127.0.0.1:9783/endpoints/http2"> 
      <suspendOnFailure> 
       <errorCodes>-1</errorCodes> 
       <progressionFactor>1.0</progressionFactor> 
      </suspendOnFailure> 
      <markForSuspension> 
       <errorCodes>-1</errorCodes> 
      </markForSuspension> 
     </address> 
     <property name="OUT_ONLY" value="true"/> 
     <property name="messageType" value="application/xml" scope="axis2"/> 
     </endpoint> 
    </target> 
    <parameter name="transport.udp.port">9998</parameter> 
    <parameter name="transport.udp.contentType">text/plain</parameter> 
    <description/> 
</proxy> 

答えて

0

上記変換のためにESBで達成できる最大TPSは、1秒あたり約3500です。それはaxis2_nhttpの設定です。このための最良のソリューションは、TCP/HTTPプログラムとは別のUDPプログラムを使用することです(ESBを使用せずに高いスループットを得ることができます)。

とにかく、CEPがUDPメッセージを受け付けないため、この会話が必要です。だから私はこのための最良の解決策は、CEPのためのUDPのアダプタ(受信機)を記述していると言いました '別のUDPをTCP/HTTPプログラム'を使用します。その場合、毎秒100,000回のudpメッセージまで行きます。

関連する問題