翁超凡
新手
新手
  • UID177
  • 粉丝0
  • 关注0
  • 发帖数2
  • 社区居民
阅读:4985回复:0

HKDAS分布式事务开发

楼主#
更多 发布于:2019-04-23 17:11
1.配置文件
  配置入口文件是application.conf,目前还不能指定该配置文件,所以配置文件名称只能为application.conf。配置示例如下:

图片:799XJ6]LK{PKC9UACY{I6V0.png



  transport部分的配置对应NettyServerConfig类,用于定义Netty相关的参数。事务管理者(TM)、资源管理者(RM)与事务协调者(TC)之间使用Netty进行通信
   service {
    #vgroup->rgroup
    vgroup_mapping.my_test_tx_group = "default"
    #配置Client连接TC(事务协调者)的地址
    default.grouplist = "127.0.0.1:8091"
    #degrade current not support
    enableDegrade = false
    #disable
 是否启用分布式事务

    disableGlobalTransaction = false
}

2.事务协调者
要使用HKDAS的分布式事务功能,需要在原来的基础之上启动 hearken-das-transaction-coordinator 模块,该模块不需要任何配置,只用 执行com.sunsheen.jfids.das.server中的main方法即可。
3.开启一个全局事务
在需要开启全局事务的方法上添加注解@GlobalTransactional (com.sunsheen.jfids.das.core.annotation.GlobalTransactional),并在需要使用该方法时,通过<Test> Test com.sunsheen.jfids.das.core.context.ServiceContexts.beginGlobalTransactional(String applicationId, String txServiceGroup, Class<Test> clazz) 返回包含该方法的类实例。如图所示:

图片:T3TCR(1A1QCCDVO8WV)_@TJ.png



该方法的第一个参数表示应用id,第二个参数表示事务组名称。
3.数据源代理
   在分布事务中使用的数据源必须指定代理,目前数据源只能基于DruidDataSource,以后将支持任意数据源类型。数据源代理指定示例如下

图片:QQ截图20190423170112.png



4.资源管理客户端初始化
    在应用启动后需要执行以下静态方法,对资源管理客户端进行初始化。第一个参数为应用id,第二个参数为事务组名称。
void com.alibaba.fescar.rm.RMClientAT.init(String applicationId, String transactionServiceGroup)




[翁超凡于2019-04-25 11:23编辑了帖子]

最新喜欢:

何万里何万里
游客

返回顶部