thanks Ashwin for the reply. I'll try to implement the ActiveMQ
strategy to distribute the load to several servers.

And I also found out the main cause of this 'slow' throughput is the
scanStreamDelay in stream component. I stupidly set the value to 50.
After I set the value to 0, the processing speed is much faster. The
drawback is that will drain your CPU a lot.


On Mon, Apr 11, 2011 at 6:17 PM, Muhammad Rayhan <[email protected]> wrote:
> Hi All
>
> I have a case in which I need to stream 3 transaction log files in
> real-time, process each line and do some filtering, transformation etc
> and send the output to certain server. The current route I use:
>
>    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
>        <route id="route1">
>                <from 
> uri="stream:file?fileName=/export/home/apps/smpp/sys/gw/tdr/MtTdr-1&amp;scanStream=true&amp;scanStreamDelay=50"/>
>                        <to 
> uri="seda:input?timeout=0&amp;concurrentConsumers=16"/>
>                </route>
>
>        <route id="route2">
>                <from 
> uri="stream:file?fileName=/export/home/apps/smpp/sys/gw2/tdr/MtTdr-1&amp;scanStream=true&amp;scanStreamDelay=50"/>
>                        <to 
> uri="seda:input?timeout=0&amp;concurrentConsumers=16"/>
>                </route>
>
>        <route id="route3">
>                <from 
> uri="stream:file?fileName=/export/home/apps/smpp/sys/gw3/tdr/MtTdr-1&amp;scanStream=true&amp;scanStreamDelay=50"/>
>                        <to 
> uri="seda:input?timeout=0&amp;concurrentConsumers=16"/>
>                </route>
>
>                <route id="route-x">
>                        <from 
> uri="seda:input?timeout=0&amp;concurrentConsumers=16" />
>                        <log message="streaming TDR line = ${body}"/>
>                        <!-- Some filtering, transformation and aggregation 
> here -->
>                </route>
>        </camelContext>
>
> The problem is, those 3 input files are produced by high throughput
> application. And the SEDA consumer processing speed  is always lower,
> so I ended up with late processing response time. For example, after
> several minutes, let say at 16:15, the module is still processing the
> log that is produced at 16:05. And the gap become bigger and bigger.
>
> I try to remove the filtering, transforming part but still face the
> same issue.I try to increase the concurrentConsumers but also no luck
>
> Is there anyway to tune or improve the SEDA consumer throughput? Do I
> miss something, or I design the route in incorrect way?
>
>
>
> --
> Twitter: @md_ray
> Email/IM: [email protected]
>



-- 
Sent using Telkomsel network
Twitter: @md_ray
Email/IM: [email protected] and [email protected]

Reply via email to