-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Configuration
纳兰丶 edited this page Mar 1, 2018
·
2 revisions
-
@Tcc 该注解为分布式事务的切面(AOP point)
-
注解中confirmMethod="xxx" 为在tcc分布式事务中confirm角色的方法名称。
-
注解中cancelMethod="xxx" 为在tcc分布式事务中cancel角色的方法名称。
-
注解中TccPatternEnum 为在tcc分布式事务中的模式,现在有tcc,和cc2种。
-
在接口上添加@Tcc注解(dubbo则需要填加在api接口上,springcloud则需要加在feignClient上),具体参考demo工程。
-
在接口实现上 添加@Tcc(confirmMethod = "方法名称", cancelMethod = "方法名称"),并提供confrim,cancel方法名称,具体参考demo工程
<!-- Aspect 切面配置,是否开启AOP切面-->
<aop:aspectj-autoproxy expose-proxy="true"/>
<!--扫描框架的包-->
<context:component-scan base-package="com.hmily.tcc.*"/>
<!--启动类属性配置-->
<bean id="tccTransactionBootstrap" class="com.hmily.tcc.core.bootstrap.TccTransactionBootstrap">
<property name="serializer" value="kryo"/>
<property name="coordinatorQueueMax" value="5000"/>
<property name="coordinatorThreadMax" value="4"/>
<property name="recoverDelayTime" value="120"/>
<property name="retryMax" value="3"/>
<property name="rejectPolicy" value="Abort"/>
<property name="blockingQueueType" value="Linked"/>
<property name="scheduledDelay" value="120"/>
<property name="scheduledThreadMax" value="4"/>
<property name="repositorySupport" value="db"/>
<property name="tccDbConfig">
<bean class="com.hmily.tcc.common.config.TccDbConfig">
<property name="url"
value="jdbc:mysql://192.168.1.68:3306/account?useUnicode=true&characterEncoding=utf8"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="password" value="Wgj@555888"/>
<property name="username" value="xiaoyu"/>
</bean>
</property>
</bean>
<!--数据保存序列化方式 spi扩展支持 java kroy,hessian protostuff 推荐使用kroy-->
<property name="serializer" value="kryo"/>
<!--协调资源线程池最大队列-->
<property name="coordinatorQueueMax" value="5000"/>
<!--协调资源线程池最大线程-->
<property name="coordinatorThreadMax" value="4"/>
<!--事务延迟多少时间恢复,单位秒-->
<property name="recoverDelayTime" value="120"/>
<!--事务执行失败最大重试次数-->
<property name="retryMax" value="3"/>
<!-- 线程池中的队列类型 spi扩展支持 Linked Array SynchronousQueue-->
<property name="blockingQueueType" value="Linked"/>
<!--线程池中的拒绝策略 spi扩展支持 Abort Blocking CallerRuns Discarded Rejected-->
<property name="rejectPolicy" value="Abort"/>
<!--调度线程池间隔时间 单位秒-->
<property name="scheduledDelay" value="120"/>
<!--调度线程池最大线程数-->
<property name="scheduledThreadMax" value="4"/>
- 数据存储为数据库(数据库支持mysql,oracle ,sqlServer),当业务模块为集群时,推荐使用 会自动创建表,表名称为 tcc_transaction_模块名称(applicationName)
<!--配置补偿类型为db-->
<property name="repositorySupport" value="db"/>
<property name="tccDbConfig">
<bean class="com.hmily.tcc.common.config.TccDbConfig">
<property name="url"
value="jdbc:mysql://192.168.1.68:3306/account?useUnicode=true&characterEncoding=utf8"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="password" value="Wgj@555888"/>
<property name="username" value="xiaoyu"/>
</bean>
</property>
- 数据存储为redis,当业务模块为集群时,推荐使用
<!--配置资源存储类型为reids-->
<property name="repositorySupport" value="redis" />
<property name="tccRedisConfig">
<bean class="com.hmily.tcc.common.config.TccRedisConfig">
<property name="hostName"
value="192.168.1.68"/>
<property name="port" value="6379"/>
<!--redis 密码 (有密码就配置,无密码则不需要配置)-->
<property name="password" value=""/>
</bean>
</property>
- 本地数据存储为zookeeper,当业务模块为集群时,推荐使用
<!--配置补偿类型为zookeeper-->
<property name="repositorySupport" value="zookeeper"/>
<property name="tccZookeeperConfig">
<bean class="com.hmily.tcc.common.config.TccZookeeperConfig">
<!--zookeeper host:port-->
<property name="host" value="192.168.1.66:2181"/>
<!--zookeeper session过期时间-->
<property name="sessionTimeOut" value="2000"/>
<!--zookeeper 根节点路径-->
<property name="rootPath" value="/tx"/>
</bean>
</property>
- 本地数据存储为mongodb,当业务模块为单节点时,可以使用。会自动创建集合,集合名称为 tx_transaction_模块名称(applicationName) 这里mongdb连接方式采用3.4.0版本推荐使用的Sha1,不是CR模式,同时mongdb应该开启权限认证,使用者需要注意
<!--配置补偿类型为mongodb-->
<property name="repositorySupport" value="mongodb"/>
<property name="tccMongoConfig">
<bean class="com.hmily.tcc.common.config.TccMongoConfig">
<!--mongodb url-->
<property name="mongoDbUrl" value="192.168.1.78:27017"/>
<!--mongodb 数据库-->
<property name="mongoDbName" value="happylife"/>
<!--mongodb 用户名-->
<property name="mongoUserName" value="xiaoyu"/>
<!--mongodb 密码-->
<property name="mongoUserPwd" value="123456"/>
</bean>
</property>
- 本地数据存储为file,当业务模块为单节点时,可以使用。创建的文件名称tcc_ + prefix配置 + 模块名称
<!--配置补偿类型为file-->
<property name="repositorySupport" value="file"/>
<property name="tccFileConfig">
<bean class="com.hmily.tcc.common.config.TccFileConfig">
<!--指定文件路径(可填可不填,不填时候,默认就是当前项目所在的路径)-->
<property name="path" value=""/>
<!--指定文件前缀,生成文件名称-->
<property name="prefix" value="consume"/>
</bean>
</property>