O documento discute estratégias de reentrega e não entrega de mensagens no HornetQ, incluindo reentrega com atraso, onde mensagens são reenviadas após um tempo definido, e Dead Letter Queue (DLQ), onde mensagens são movidas após um número máximo de tentativas de entrega.
2. Agenda
• Reentrega e Não Entrega de Mensagens
– Overview
– Reentrega com Atraso
– DLQ – Dead Letter Queue
3. Reentrega e Não Entrega de Mensagens
• Overview
– As vezes nem sempre é possível realizar a entrega
da mensagem ao destinatário, seja porque, ele
está off-line ou porque ele gerou algum erro.
– O HornetQ suporta duas maneira para lidar com
essa situação:
• Reentrega com Atraso
• Dead Letter Queue
4. Reentrega e Não Entrega de Mensagens
• Reentrega com Atraso
– Esse método é útil quando o cliente regularmente
falha ou por algum motiva desfaz uma transação
(rollback).
– Essa configuração é importante, pois evita um
consumo excessivo de CPU e recursos de rede, uma
vez que o HornetQ só suspende as tentativas quando
a mensagem é entregue ao destinatário.
5. Reentrega e Não Entrega de Mensagens
• Reentrega com Atraso
É possível definir uma fila ou
um conjunto delas.
Tempo em milissegundos
para reentrega. Por padrão é
zero (0).
6. Reentrega e Não Entrega de Mensagens
• DLQ – Dead Letter Queue
– Para prevenir as infinitas tentativas de entregas de
mensagens em caso de falha. As DLQs podem ser
configuradas nos addresses e limitar a quantidade de
tentativas de entregas antes de serem movidas para a
fila morta.
– Como as mensagens são desviadas para outras filas, o
administrador pode utilizar a DLQ para investigação.
7. Reentrega e Não Entrega de Mensagens
• DLQ – Dead Letter Queue
É possível definir uma fila ou
um conjunto delas.
Quantidade de tentativas
antes de mover para a DLQ.
A DLQ é uma fila definida no
hornetq-jms.xml