持久化消息,但是并不能完全保证消息不回丢失(不会每次接收到消息都fsync(2)),要保证消息不丢失,可以采用该方法
//开启事务
channel.txSelect();
//发送内容
channel.basicPublish("topic", "name", null, message.getBytes());
...
//提交事务
channel.txCommit();
//使用confirm实现轻量级的确认(即被routed的消息和丢弃的消息将被,持久化的消息将被确认。不支持回滚)
channel.confirmSelect();
channel.basicPublish("topic", "name", null, message.getBytes());
channel.waitForConfirmsOrDie();