-
什么是发布确认呢?
我们都知道rabbitMQ为了保证消息传递的可靠,可以在消费者和队列之间做一个持久化操作,就是消息被成功消费了,消费者就会通知队列,队列就会删除掉这条消息。那么由此产生了一个问题,如何保证消息可靠的进入队列中呢?
那么无非是在生产者和消息队列之间加一层和之前差不多的方式就可以了,生产者生产消息要得到消息队列的确认。以保证消息的可靠。
发布确认有三种方式 -
单个确认等待
每个消息发送之后都等待消息队列回复ack然后在继续发送,发布速度特别慢,这种方式最多提供每秒不超过数百条发布消息的吞吐量。特点是简单。
这是发布1000个队列的时间
public static void publicMessageIndividually() throws Exception{
Channel channel = RabbitMQUtils.getChannel();
String queueName = UUID.randomUUID().toString();
channel.queueDeclare(queueName, true, false, false, null);
channel.confirmSelect();
long begin = System.currentTimeMillis();
for (int i = 0; i < MESSAGE_COUNT; i++) {