Monday, February 7, 2022

Reliable Message Delivery with RabbitMQ

 In RabbitMQ, data safety is being handled by the below two mechanism:

 I. Consumer Acknowledgements

II.  Publisher confirms


Consumer Acknowledgements:
Assuming there is no auto acknowledgement 'Fire and forget' happening, its the consumer which will stamp the message and RMQ can decide further based on the negative acknowledgements;

Publisher Confirms:
basic.ack :  positive acknowledgements
basic.nack : negative acknowledgements, with multiple message option
basic.reject :  negative acknowledgements,

Publisher confirms:

  rabbitTemplate.setConfirmCallback(rabbitEventConfirmCallback);        

   public class RabbiteventConfirmCallback implements RabbitTemplate.ConfirmCallback {

    @Override

    public void confirm(CorrelationData correlationData, boolean ack, String cause) {

    if(ack){

    }

else{

//do something. Requeue/ ignore...

}

No comments:

Post a Comment