Maybe an alternative approach to consider is to use camel routes
embedded in the broker.
Take a look at http://activemq.apache.org/broker-camel-component.html



On Tue, Aug 26, 2014 at 4:40 AM, Dror <dro...@hotmail.com> wrote:
> Hi,
>
> My use case:
> We get lots of small size (up to 1K) messages and we need to send them over
> http for reporting purposes.
> Due to performance consideration, resource utilization and readability we
> would like to accumulate messages and send them in a batch of 512K (it can
> also be based on number of messages).
> *Requirements:*
> 1.      Gets high traffic volume of messages and send them over http in a 
> batch.
> 2.      On failed delivery, I need to resend the messages in another time
> (Exponential backoff)
> 3.      No data losses (all messages need to be sent)
>
> For number 3:  I am using an embedded persistent broker (vm:// protocol) on
> the client side.
> I thought about few options:
>
> 1. *Message aggregator on the producer side*
> Producer will accumulate messages using StreamMessage object and send them
> as one large message.
> Disadvantage:
>    a.   Multiple producers – so message aggregation on producer side is
> somehow problematic
>    b.   Persistency, if the system shut down un expectedly I lost the messages
>
> 2. *Message aggregator on the consumer side*
>
> Producer will send every single message and consumer will consume the
> message into an internal byteBuffer when the buffer reach the 512K , they
> are send as a report.
>
> 1.      I will appreciate any advice here?
> 2.      Is there is a built in mechanism for that (maybe using JmsTransaction)
>
> Thanks in advance;
> Dror
>
>
>
>
> --
> View this message in context: 
> http://activemq.2283324.n4.nabble.com/Batch-messages-on-Producer-oR-On-consumer-side-tp4685013.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to