RabbitMQ——发布确认模式
发布确认模式(Publish-Confirm)是一种确保消息可靠投递的重要机制,用于确保消息已经被正确地发送到 RabbitMQ 服务器。
RabbitMQ 发布确认模式的三种形式:单条确认、批量确认和异步确认。
单条发布确认
单条发布确认(Single Publisher Confirm)是最基本的确认模式,在发布一条消息后,等待服务器确认该消息是否成功接收。
缺点:每条消息都需要等待服务器的确认,可能导致性能开销较大,特别是在高并发的场景下。
Channel channel = connection.createChannel()
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 开启发布确认
channel.confirmSelect();
// 发布消息,等待服务器确认
channel.basicPublish("", QUEUE_NAME, null, "Hello, RabbitMQ!".getBytes());
// 等待服务器确认
if (channel.waitForConfirms()) {
System.out.println("Message sent successfully.");
} else {
System.out.println("Failed to send message.");
}
批量发布确认
批量发布确认模式允许在一次性确认多个消息是否成功被服务器接收,这在大量消息的场景中可以提高效率。
缺点:当一批消息中有一条消息发送失败时,整个批量确认失败,可能需要重新发送整批消息且不知道是哪条消息失败。
public class BatchPublisherConfirmExample {
private static final String QUEUE_NAME = "my_queue";
public static void main(String[] args) throws Exception {
Channel channel

最低0.47元/天 解锁文章
1955

被折叠的 条评论
为什么被折叠?



