之前我们确定一个消息是否发送成功是从消费者是否接收到来判断的,但是在实际应用中,消费者和生产者往往是分开部署的,我们也不可能每发送一条消息就去消费者那里确认一下,所有我们需要一个机制来确认消息发送后是否成功到达了消息队列,下面来介绍几种在生产者端来确认消息发送状态的方法。(本篇及上一篇事务模式)
confirm串行模式
生产者
package com.mmr.rabbitmq.confirm01;
import com.mmr.rabbitmq.util.ConnectionUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
public class Send {
private static final String QUEUE_NAME="QUEUE_confirm";//定义队列名
public static void main(String[] args) throws Exception
{
Connection connection = ConnectionUtils.getConnection();
Channel channel = connection.createChannel();//获取一个信道
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
channel.confirmSelect(); //将信道设置成confirm模式
String msg="Hello confirm QUEUE !";
//可使用循环发送多条消息
for (int i = 0; i < 10; i+