Confirm的三种实现方式:
方式二:channel.waitForConfirmsOrDie()批量确认模式;
channel接口方法:
1.channel.confirmSelect(); 开启发送方确认模式
2.channel.waitForConfirms();
特点:
批量消息确认,它会同时向服务,确认之前当前通道中的发送的数据是否已经全部成功写入
此方法无任何返回值。
如果服务器中有一条消息没成功,或服务器不可访问,都会被认为发送失败,并抛出异常。
可以为这个方法指定一个毫秒用于确定我们需要等待服务器确认的超时时间,如果超时会抛出异常。
如果抛出异常,或者返回false,将消息缓存到redis中,稍后可利用定时任务补发
优点:
批量确认比普通确认要快。比如发10条消息:批量确认是一次确认10条,普通确认要确认10次。
缺点:
不知道此批次,有多少条成功,有多少条失败,没有返回值。无法确认哪条消息需要补发。