You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Hervé BARRAULT <he...@gmail.com> on 2012/02/20 14:24:54 UTC

Batch Consumer

Hi,

I have a simple mission which is to send persisted objects through web
service.Currently, the persisted "messages" are in a JMS queue.

I noticed that I have a lot of small messages which I could aggregate to
build a big one. I think being able to improve the throughput by reducing
the ratio envelope/Data (I think also that the target application is more
efficient with big messages than small ones).

I thought using a batch consumer (read all available messages with
obviously a max number of message) then an aggregation (based on the batch
size) before processing the "batched exchange" but it seems that there is
nothing ready for JMS batch consumer.
I have also seen the batch aggregator but it would increase the latency
when i have few messages as i should wait the completionTimeout.

I see also in documentation that JPA batch consumer should do a similar job.

1) Is it useful to use batch+aggregator to improve throughput ?
2) Is using JMS and looking for batch consumer a good idea (or better to
look to JPA)?

Thanks in advance for answers.
Regards
Hervé

Re: Batch Consumer

Posted by Hervé BARRAULT <he...@gmail.com>.
Hi,
thanks for the answer.

Actually i use inOnly MEP,  so i could use a schedulesBatchPollingConsumer.

Regards
Hervé


On Tue, Feb 21, 2012 at 8:50 AM, Willem Jiang <wi...@gmail.com>wrote:

> It could be more nature if you are using pure JMS API and do the
> aggregation work in the
> bach consumer, but I'm afriad current camel jms component doesn't support.
>
> Camel JMS Consumer is based Spring JMS Listener, it process the message
> one by one.
> It's hard to support the request/response model in the JMS batch consumer.
> But it could be easy to implement one by extendes the
> ScheduledBatchPollingConsumer yourself,
> if your message from the jms doesn't request any response.
>
>
> On Mon Feb 20 21:24:54 2012, Hervé BARRAULT wrote:
>
>> Hi,
>>
>> I have a simple mission which is to send persisted objects through web
>> service.Currently, the persisted "messages" are in a JMS queue.
>>
>> I noticed that I have a lot of small messages which I could aggregate to
>> build a big one. I think being able to improve the throughput by reducing
>> the ratio envelope/Data (I think also that the target application is more
>> efficient with big messages than small ones).
>>
>> I thought using a batch consumer (read all available messages with
>> obviously a max number of message) then an aggregation (based on the batch
>> size) before processing the "batched exchange" but it seems that there is
>> nothing ready for JMS batch consumer.
>> I have also seen the batch aggregator but it would increase the latency
>> when i have few messages as i should wait the completionTimeout.
>>
>> I see also in documentation that JPA batch consumer should do a similar
>> job.
>>
>> 1) Is it useful to use batch+aggregator to improve throughput ?
>> 2) Is using JMS and looking for batch consumer a good idea (or better to
>> look to JPA)?
>>
>> Thanks in advance for answers.
>> Regards
>> Hervé
>>
>>
>
>
> --
> Willem
> ------------------------------**----
> FuseSource
> Web: http://www.fusesource.com
> Blog:    http://willemjiang.blogspot.**com<http://willemjiang.blogspot.com>(English)
>        http://jnn.javaeye.com (Chinese)
> Twitter: willemjiang Weibo: willemjiang
>

Re: Batch Consumer

Posted by Willem Jiang <wi...@gmail.com>.
It could be more nature if you are using pure JMS API and do the 
aggregation work in the
bach consumer, but I'm afriad current camel jms component doesn't 
support.

Camel JMS Consumer is based Spring JMS Listener, it process the message 
one by one.
It's hard to support the request/response model in the JMS batch 
consumer.
But it could be easy to implement one by extendes the 
ScheduledBatchPollingConsumer yourself,
 if your message from the jms doesn't request any response.

On Mon Feb 20 21:24:54 2012, Hervé BARRAULT wrote:
> Hi,
>
> I have a simple mission which is to send persisted objects through web
> service.Currently, the persisted "messages" are in a JMS queue.
>
> I noticed that I have a lot of small messages which I could aggregate to
> build a big one. I think being able to improve the throughput by reducing
> the ratio envelope/Data (I think also that the target application is more
> efficient with big messages than small ones).
>
> I thought using a batch consumer (read all available messages with
> obviously a max number of message) then an aggregation (based on the batch
> size) before processing the "batched exchange" but it seems that there is
> nothing ready for JMS batch consumer.
> I have also seen the batch aggregator but it would increase the latency
> when i have few messages as i should wait the completionTimeout.
>
> I see also in documentation that JPA batch consumer should do a similar job.
>
> 1) Is it useful to use batch+aggregator to improve throughput ?
> 2) Is using JMS and looking for batch consumer a good idea (or better to
> look to JPA)?
>
> Thanks in advance for answers.
> Regards
> Hervé
>



-- 
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang 
Weibo: willemjiang