[rabbitmq-discuss] Rabbitmq-Shovel Timer-Based Publishing Possible?
Matthias Radestock
matthias at rabbitmq.com
Wed Mar 16 22:00:22 GMT 2011
Allen,
Allen Kim wrote:
> Message volume fluctuates from extremely high to very low depending on the
> time of day.
>
> We use a relatively large transaction size on the outbound, publishing,
> connection to get high enough throughput on a high latency link for the
> peak times of day. However, at the off peak times of day, it can take up
> to a few minutes for the shovel to accumulate enough messages to hit the
> configured transaction commit size.
>
> Allowing a configurable transaction size plus commit timer adds some
> flexibility. At peak times, the transaction size counter is always hit
> first. At low times, the timer hits first and ensures that message
> delivery does not stall.
So you are employing transactions in order to get guaranteed delivery,
right?
I can see at least two alternative approaches here...
1) instead of committing after a certain size/time, grow the tx as long
as there are messages and only commit when there is a gap.
2) use confirms (http://www.rabbitmq.com/extensions.html#confirms) and
only ack a message to the source once it has been confirmed by the
destination.
Both approaches require zero config - no obscure time/count knobs to
tweak - which makes them rather appealing.
Unfortunately the shovel currently doesn't support either of these. I've
filed a bug to look into the latter.
Regards,
Matthias.
More information about the rabbitmq-discuss
mailing list