https://pan.baidu.com/s/1cLKAeE#list/path=%2Fsharelink974324822-625872931897976%2Ftx-manager&parentPath=%2Fsharelink974324822-625872931897976html
https://github.com/codingapi/springcloud-lcn-demojava
USE test; DROP TABLE IF EXISTS `t_test`; CREATE TABLE `t_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
<lcn.last.version>4.1.0</lcn.last.version> <dependency> <groupId>com.codingapi</groupId> <artifactId>transaction-springcloud</artifactId> <version>${lcn.last.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.codingapi</groupId> <artifactId>tx-plugins-db</artifactId> <version>${lcn.last.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
@Override @TxTransaction(isStart = true) @Transactional public int save() { int rs2 = demo2Client.save(); int rs1 = testMapper.save("mybatis-hello-1"); // int rs22 = demo2Client.save(); // int v = 100/0; return rs1+rs2; }加上 @TxTransaction(isStart = true) 表示事務開始,在走完整個流程之前,事務都會由tx-manager來協調
/** * Created by lorne on 2017/6/26. */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface TxTransaction { /** * 是否LCN事務發起方 * @return true 是:是發起方 false 否:是參與方 */ boolean isStart() default false; /** * 回滾異常 * @return */ Class<? extends Throwable>[] rollbackFor() default {}; /** * 不回滾異常 * @return */ Class<? extends Throwable>[] noRollbackFor() default {}; }
/** * Created by lorne on 2017/6/26. */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface TxTransaction { /** * 事務模式 transaction type * * @return lcn, tcc, txc * @see Transactions */ String type() default Transactions.LCN; /** * 分佈式事務傳播行爲 * * @return 傳播行爲 * @see DTXPropagation */ DTXPropagation propagation() default DTXPropagation.REQUIRED; }
https://www.txlcn.org/zh-cn/docs/start.htmlmysql