Olá Danilo, tudo bem?
A duplicação de mensagens é um problema que pode ocorrer em qualquer sistema de mensageria, inclusive no RabbitMQ. Porém, o RabbitMQ possui mecanismos para minimizar esse problema.
Uma das formas de garantir a entrega exatamente uma vez é utilizando o conceito de "acknowledgement". Basicamente, o consumidor envia uma confirmação de que recebeu e processou a mensagem. Se o RabbitMQ não receber essa confirmação, ele assume que a mensagem não foi processada e a envia novamente.
Outra forma de evitar a duplicação de mensagens é utilizando o conceito de "deduplication". Nesse caso, o RabbitMQ utiliza um identificador único para cada mensagem. Se uma mensagem com o mesmo identificador for enviada novamente, o RabbitMQ a descarta.
É importante ressaltar que, mesmo com esses mecanismos, a duplicação de mensagens ainda pode ocorrer em situações excepcionais, como falhas de rede ou indisponibilidade do consumidor.
Espero ter ajudado e bons estudos!