rabbitmq 消息确认机制

本文介绍了RabbitMQ的消息确认机制,包括生产端的transaction和confirm两种方式,以及消费端的确认过程。在测试环境中,confirm机制的性能优于transaction。当消费者消费消息但未ack时,消息状态为unacked,如果消费者关闭,未ack的消息会重新变为ready。消费者确认消息后,MQ才会删除消息。未确认的消息在消费者关闭后会被重新发送给其他消费者。代码示例中展示了基本的ack操作,批量ack并未显著提高性能。
摘要由CSDN通过智能技术生成

rabbitmq的消息确认机制分两部分

一部分是生产端,一部分是消费端

以下都是经过本人亲测得出的结论

环境版本:

RabbitMQ 3.6.3, Erlang 19.0  rabbitmq-java-client-bin-3.6.3


生产端

有两种选择,transaction   和   confirm。

transaction机制

                      //transaction 机制  
			channel.txSelect();
			
			String msg = "msg  test !!!";
			for(int i=0;i<10000;i++){
				msg = i+" : msg  test !!!";
				channel.basicPublish(EXCHAGE, QUEUE_NAME,null,msg.getBytes());
				 System.out.println("publish msg "+msg);
				 if (i>0&&i%100==0){
					 //批量提交
				 	channel.txCommit();
				 }
					 
			} // 若出现异常 进行 channel.txRollback(),对相应批次的msg进行重发或记录
                       channel.txCommit();




conf

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值