might take a look at the idempotent consumer pattern to filter
duplicates...it can be used with a repository (hazelcast, file, etc) to
survive servers restarts, etc

http://camel.apache.org/idempotent-consumer.html


MichaelAtSAG wrote
> All,
> 
> Please provide best practices on supporting guaranteed delivery with
> routes that containing multiple endpoints. Our system writes to a ehCache
> with persistence on the producer, then routes to all endpoints. Once all
> endpoints receive the message and the route completes, the message is
> removed from the producer ehCache queue. In case of producer failure, like
> JVM crash, the in-process messages are restored from ehCache upon restart.
> 
> One concern is that this can result in duplicates being sent to certain
> endpoints. For example, route contains endpoints a,b,c. A message is sent
> to a and b, and then the producer jvm crashes. The message remains in the
> producer guaranteed delivery queue and will be resubmitted once the
> producer JVM restarts and sent to a,b,c. This results in duplicates to a
> and b. 
> 
> Our Camel routes support duplicate message detection in the consumer. We
> encourage consumers to implement this pattern in case duplicates are not
> acceptable, yet it is a performance hit.
> 
> Any best practices on this? 
> Any examples or techniques on suppressing the resend from routes to
> endpoints a and b on the producer-side?
> 
> Thanks,
> Michael





-----
Ben O'Day
IT Consultant -http://consulting-notes.com

--
View this message in context: 
http://camel.465427.n5.nabble.com/Apache-camel-guaranteed-delivery-multiple-endpoints-tp5746503p5746607.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to