首先启动raincat-manager,具体怎么启动参考 启动manager

jar包依赖,在你的服务端添加jar包,并在需要参与分布式事务的方法上添加 @TxTransaction注解

  1. <dependency>
  2. <groupId>org.dromara</groupId>
  3. <artifactId>raincat-springcloud</artifactId>
  4. <version>2.0.0-RELEASE</version>
  5. </dependency>

Spring XML方式配置 TxTransactionBootstrap

  1. <context:component-scan base-package="org.dromara.*"/>
  2. <aop:aspectj-autoproxy expose-proxy="true"/>
  3. <bean id="txTransactionBootstrap" class="org.dromara.raincat.core.bootstrap.TxTransactionBootstrap">
  4. <property name="txManagerUrl" value="http://localhost:8761"/>
  5. <property name="serializer" value="kryo"/>
  6. <property name="nettySerializer" value="kryo"/>
  7. <property name="compensation" value="true"/>
  8. <property name="compensationCacheType" value="db"/>
  9. <property name="txDbConfig">
  10. <bean class="org.dromara.raincat.common.config.TxDbConfig">
  11. <property name="url"
  12. value="jdbc:mysql://192.168.1.98:3306/tx?useUnicode=true&amp;characterEncoding=utf8"/>
  13. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  14. <property name="username" value="root"/>
  15. <property name="password" value="123456"/>
  16. </bean>
  17. </property>
  18. </bean>

Spring boot start方式配置 TxTransactionBootstrap

  • 首先依赖raincat 提供的spring-boot-starter-springcloud
  1. <dependency>
  2. <groupId>org.dromara</groupId>
  3. <artifactId>raincat-spring-boot-starter-springcloud</artifactId>
  4. <version>2.0.0-RELEASE</version>
  5. </dependency>
  • 配置 application.yml
  1. org:
  2. dromara:
  3. raincat:
  4. txManagerUrl: http://localhost:8761
  5. serializer: kroy
  6. nettySerializer: kroy
  7. compensation: true
  8. compensationCacheType : db
  9. txDbConfig :
  10. driverClassName : com.mysql.jdbc.Driver
  11. url : jdbc:mysql://192.168.1.98:3306/tx?useUnicode=true&amp;characterEncoding=utf8
  12. username : root
  13. password : 123456
  • txManagerUrl:填写你启动的txManager的ip端口,注意添加http://

  • serializer: 是指事务日志的序列化方式

  • nettySerializer: 与txManager通信对象的序列化方法,注意与txManager中的序列化方式配置一样。

  • compensation :是否需要补偿,极端情况下,服务自身会进行补偿。

  • compensationCacheType: 存储日志类型,当然还有支持redis,mongo,zookeeper等等,具体可以参考 配置详解

配置扫描raincat包,与开启AOP代理(XML方式配置的时候必须加上,starter方式不需要)。

如果有任何问题可以参考springcloud-sample