String msg = UUID.randomUUID().toString();
channel.txSelect(); // 开启事务
channel.basicPublish(Exchange.MY_EXCHANGE, Binding.ROUTING_KEY, MessageProperties.PERSISTENT_TEXT_PLAIN, msg.getBytes("UTF-8"));
channel.txCommit(); // 提交事务
System.out.println("发布消息 : " + msg);
channel.txSelect() 开启事务,该操作会向服务器发送 select 请求,服务器返回 select-ok 响应;
channel.txCommit() 提交事务,该操作会向服务器发送 commit 请求,服务器返回 commit-ok 响应;
channel.txRollback() 回滚事务,该操作会向服务器发送 rollback 请求,服务器返回 rollback-ok 响应。
注意:事务会明显降低 rabbitmq 的吞吐量