使用时,如果生产者想知道消息是否成功地传递到相应的开关和队列,则有两种方法可以控制消息传递的可靠性模式。
 从上面整个消息的交付过程的角度来看,生产者的消息将在输入中间部分时首先到达开关,然后从开关传递到队列,也就是说,将其分为两个步骤策略然后,新闻的损失是它将出现在这两个阶段。RabbitMQ亲密地为我们提供了这两个部分的可靠新传输模式:
 使用这两个回调模式来确保消息可靠。
1.1。确认模式 消息将从生产者返回回调为交换机。您可以在实例中直接设置逻辑设置。如果您使用配置,则需要打开出版社中的Publisher-confirms =“ true”。该配置是直接发布者 - 构成类型的:Correaled。他默认要手动打开它。
 上面的确认是由函数执行的,该函数带有三个参数,第一个是相关信息,第二个指示了开关是否成功接收了消息,第三个参数意味着未成功接收到它。
1.2。返回模式 从切换到消息队列,它将返回一个。在工厂配置中打开“撤退模式发布者returns” =“ true”,设置开关处理消息失败的模式(默认false false以直接丢弃消息),并添加逻辑返回处理。
 中间携带五个参数,其中指消息对象,错误代码,错误信息,开关,路由键。
1.3。确认机制 在取消消息队列中数据的数据取消之后,将有一种确认消息的确认机制,以防止由于消息的成功而导致消息的消息丢失,但没有消耗。有三种方法可以确认:
 其中,自动确认意味着一旦消息被消费者捕获,它将自动默认并从消息队列中删除。如果目前消费的消费存在问题,它将在默认消息消耗中取得成功,但事实上,消费没有成功,也就是说,当前的新闻丢失了。默认情况是自动确认机制。
 如果设置手动确认方法,则需要在正常消费消息后调节确认,并手动签名。如果在业务处理过程中发生异常,则将再次发送呼叫。
 首先,当队列绑定时需要确认机制的配置,并将其设置为手动签名。
 生产者不需要改变一端。它只需要改变消费者对消息自动签名的实现的实现。业务的正常执行签署了消息,业务是错误的,并且消息被拒绝,该消息被重新发布或丢弃。
 涉及三个简单的签名功能,一个正确签名,另一个是单个拒绝,第三个是批处理。
 增加用户请求和数据库服务处理之间的消息中间件的隔离,以便所有紧急情况都可以抵抗消息队列并减少服务器结束的可能性。let所有请求都存储在队列中,消费者终端只需要以恒定的消费速度传达信息,以确保运营效率,并且由于背景的阻塞而不会导致客户得到正常响应(当然,这意味着它意味着它是引用的任务不需要同步)。
 您只需要在消费者绑定消息队列时指定删除消息的速率。需要手动签名方法来每次从队列中删除下一个数据。
 消息队列提供了存储在队列中的到期时间,分为两个方向,一个是针对整个队列中的所有消息,即队列的到期时间,另一个是当前新闻的到期时间。是单独设置以获取一条消息。
队列的到期时间设置非常简单。您只需要在创建队列时指定到期时间,或者您可以直接通过控制台创建指定的到期时间。一旦队列到期,在队列中未消费的新闻将到期并到期排队。
 发送时需要单独指定单个消息的到期时间,并且在发送时配置时指定的其他信息在发送时完成。
 如果消息的到期时间结束了,但是他目前处于队列的中间,那么他将不会处理他,并且只有在处理直到那时才能进行处理,判决才会过期。
 如果消息的到期时间和队列的到期时间同时,则最终到期时间由最短的时间确定,即,如果当前新闻未到达,但是整个队列的到期时间IS,然后在队列中的新闻也自然到期,并实施了过期的处理策略。
4.1。死亡字母的概念。死亡字母队列指的是死信开关。当一条消息变成死信时,可以将其发送到另一个开关进行处理。处理的开关称为死信开关。
 创建队列时,您可以在配置中指定相关信息,例如死信开关,队列长度等。随后的一系列工作无法操作。MQ将自己完成配置事件响应。
4.2,延迟队列 延迟队列是指进入队列后不会立即消耗消息的消息,并且仅在达到指定时间(即需要时间判断条件)后才消耗。
 消息队列不提供延迟队列的实现,但是可以通过+来完成设置队列,而不是任何消费者消耗的队列,所有消息都将存储在其中,设置了排队以设置排队时间的到期时间,一旦队列到期,将所有新闻转换为约束的死信队列。
 然后,特定的消费者消耗了死亡字母队列的消息,以实现延迟队列的功能。
 例如,要实现订单 - 时间付款超时以取消订单: