消息确认机制(失误+confirm)
事务机制
每一次提交和请求的时候都会降低吞吐量(少用)
三种模式
txSelect:用于将当前channel设置为(事务)transation模式
txCmmit:提交事务
txRollback:回滚事务
代码用例:
生产者:
消费者:
Confirm模式
生产者confirm模式的原理
该模式的好处是什么?
该模式是异步的,能提高吞吐量。
1单条确认(效率很低)
生产者:
2:批量确认
3:异步确认
生产者类代码:
添加通道的监听:只有消息到达之后才会调回调函数。
成功了会回掉handleAck(),失败了回掉handleNack()
Boolean multiple:表示返回的确实是否为多条记录。basicAck 方法的第二个参数 multiple 取值为 false 时,表示通知 RabbitMQ 当前消息被确认;如果为 true,则额外将比第一个参数指定的 delivery tag 小的消息一并确认。对同一消息的重复确认,或者对不存在的消息的确认,会产生 IO 异常,导致信道关闭。
如果是多条,则把序号大于deleverTag+1的记录全部删除
如果是单条则指删除序列号为deleverTag的记录