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