分布式之分布式事务

被人问到分布式事务,之前学rabbitMQ 的时候学到过rabbitMQ 高级的事务,因为没有用过,所有没有回答好。这里总结一下。

1.单机版事务。

事务的四大特性 ACID 

 a.原子性

 b.一致性

 c.隔离性

 d.持久性

单机事务可以通过设置事务的隔离级别 参见spring 的事务隔离级别

2.分布式事务(这里用MQ 消息事务来举例)

rabbitMQ  

消息事务机制

channel.txSelect

将通道设置为事务模式

channel.txCommit

用于事务提交

channel.txRollback

用于事务回滚

具体代码如下:

1. channel.txSelect();

channel.basicPublish(EXCHANGE_NAME,ROUTING_KEY,MesageProperties.PERSISTENT_TEXT_PLAIN,"transaction message".getBytes());

channel.txCommit();

2. try{

channel.txSelect();

channel.basicPublish(exchange,routingKey,MessageProperties.PERSISTENT_TEXT_PLAIN,msg.getBytes());

int result = 1/0

channel.txCommit();

}catch(Exception e){

e.printStackTrace

channel.txRollback();

}

猜你喜欢

转载自blog.csdn.net/qq_38233650/article/details/88871769