2

I want to convert UDP stream to TCP/HTTP and feed it into a WSO2 CEP. So for UDP to HTTP conversion I used WSO2 ESB. As I can see it is possible to convert around 2000UDP messages into HTTP smoothly with ESB proxy. In that case ESB took around 2.2GB RAM. But I need more performance than this (around 50,000 conversions per second).

My conversion ESB proxy as follows. Is there a way I can achieve above performance? (I assume that ESB using HTTP NIO here).

<?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>
Community
  • 1
  • 1
lsc
  • 681
  • 3
  • 8
  • 26

1 Answers1

0

The maximum TPS I could achieve with ESB for above conversion is around 3500 per second. And that is with axis2_nhttp config. The best solution for this is using separate UDP to TCP/HTTP program so we can gain high throughput (without using ESB).

Anyway I need this conversation as CEP is not accepting UDP messages. So I think the best solution for this is writing a UDP adapter (receiver) for CEP using mentioned 'separate UDP to TCP/HTTP program'. In that case I can go upto 100,000 udp messages per second.

lsc
  • 681
  • 3
  • 8
  • 26