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>