1.ActiveMQ重試機制是什么?
消費者收到消息,之后出現異常了,沒有告訴broker確認收到該消息,broker會嘗試再將該消息發送給消費者。嘗試n次,如果消費者還是沒有確認收到該消息,那么該消息將被放到死信隊列中,之后broker不會再將該消息發送給消費者。
2.具體哪些情況會引發消息重發?
① Client用了transactions且在session中調用了rollback
② Client用了transactions且在調用commit之前關閉或者沒有commit
③ Client在CLIENT_ACKNOWLEDGE的傳遞模式下,session中調用了recover(允許消息重發模式下)
3.消息重發時間間隔和重發次數
間隔:1 次數:6
4.有毒消息Poison ACK
一個消息被redelivedred(重發)給消費者端超過默認的最大重發次數(默認6次)時,消費者端會給MQ發一個“poison ack”表示這個消息有毒,告訴broker不要再發了。這個時候broker會把這個消息放到DLQ(死信隊列)。