RabbitMQ 消息的 Confirm 机制与 Return 机制

本文介绍了RabbitMQ的Confirm消息确认机制,它确保生产者的消息被Broker成功接收,提供消息可靠投递的保障。同时,讨论了Return消息机制,当消息无法路由时,如何通过设置mandatory来监听并处理这些不可路由的消息。通过代码示例解释了如何在生产端和消费端应用这两种机制。

Confirm 消息确认机制

消息的确认,是指生产者投递消息后,如果 Broker 收到消息,则会给生产者一个应答。生产者能接收应答,用来确定这条消息是否正常的发送到 Broker,这种方式是消息可靠性投递的核心保障。
MyProducer.java

public class MyProducer {
   
   
	public static void main(String[] args) throws Exception {
   
   
		// 创建连接工厂,并进行属性设置
		ConnectionFactory connectionFactory = new ConnectionFactory();
		connectionFactory.setHost("192.168.0.125");
		connectionFactory.setPort(5672);
		connectionFactory.setVirtualHost("/");
		
		// 获取连接
		Connection connection = connectionFactory.newConnection();
		// 创建信道
		Channel channel = connection.createChannel();
		// 指定消息的投递模式  --消息的确认模式
		channel.confirmSelect();
		
		String exchangeName = "exchange_confirm";
		String routingKey = "test.confirm";
		// 通过信道发送信息
		String msg = "hello, rabbitmq, test confirm ";
		channel.basicPublish(exchangeName, routingKey, null, msg.getBytes());
		// 添加确认监听
		channel.addConfirmListener(new ConfirmListener() {
   
   

			@Override
			public void handleAck(long deliveryTag, boolean multiple) throws IOException {
   
   
				System.out.println("======handle  Ack==========");
			}

			@Override
			public void h
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值