JMS&ActiveMQ教程
基于JMS的消息传送
ActiveMQ与Spring集成
ActiveMQ与SpringBoot集成
ActiveMQ安全机制
ActiveMQ主从集群

ActiveMQ消息确认机制

消息的确认指的是接收消息的时候发生的工作,发送消息不存在确认;

消息只有在被确认之后,才认为已经被成功消费,然后消息才会从队列或主题中删除。

消息的成功消费通常包含三个阶段

● 客户接收消息

● 客户处理消息

● 消息被确认

消息确认的方式

1、Session.AUTO_ACKNOWLEDGE

客户(消费者)成功从receive方法返回时,或者从MessageListener.onMessage方法成功返回时,会话自动确认消息。

2、Session.CLIENT_ACKNOWLEDGE

客户通过显式调用消息的acknowledge方法确认消息。

注意:这个确认机制和事务消息有重叠,不管是哪种确认机制,只要是事务消息,那么一旦事务提交,都会进行确认,所以需要如果客户端确认,需要改为非事务消息。

3、Session. DUPS_OK_ACKNOWLEDGE(很少用)

不是必须确认,是一种“懒散的”消息确认,消息可能会重复发送,在第二次重新传送消息时,消息头的JMSRedelivered会被置为true标识当前消息已经传送过一次,客户端需要进行消息的重复处理控制。

4、Session.SESSION_TRANSACTED

事务提交并确认。 配合事务消息的;

我们所介绍的消息接收确认机制,一律以接收者为准,与发送者没有关系。