| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
English | 简体中文
dtmcli-java is the Java client SDK for distributed transaction manager dtm
This project includes the Maven Wrapper (mvnw) to ensure consistent builds across environments:
# Build the project using Maven Wrapper
./mvnw clean install
# Run tests
./mvnw test
# Compile the code
./mvnw compileUsing the Maven Wrapper ensures that all developers use the same Maven version, avoiding "works on my machine" issues.
DTM is a distributed transaction framework which provides cross-service eventual data consistency. It provides saga, tcc, xa, 2-phase message, outbox patterns for a variety of application scenarios. It also supports multiple languages and multiple store engine to form up a transaction as following:
| artifact | version | dtmcli-java version | remark |
|---|---|---|---|
| dtmcli-springcloud | 2.1.4.1 | 2.4.0 <= springboot version < 2.5.13 | for springboot >= 2.5.0,please set spring.cloud.compatibility-verifier.enabled=false |
| dtmcli-springcloud | 2.1.4.2 | 2.6.0 <= springboot version < 2.6.latest | |
| dtmcli-java | 2.1.4 | others |
Maven:
<dependency>
<groupId>io.github.dtm-labs</groupId>
<artifactId>dtmcli-springcloud</artifactId>
<version>${dtmcli.version}</version>
</dependency>Gradle:
dependencies {
implementation 'io.github.dtm-labs:dtmcli-springcloud:${dtmcli.version}'
}If you are using dtmcli-java,new a file named dtm-conf.properties
serverAddr=127.0.0.1:8848 username=nacos password=nacos namespace=c3dc917d-906a-429d-90a9-85012b41014e dtm.service.name=dtmService dtm.service.registryType=nacos
dtm.ipport=127.0.0.1:36789
@RequestMapping("testTcc")
public String testTcc() {
// new dtm clinet
DtmClient dtmClient = new DtmClient(ipPort);
//create TCC transaction
try {
dtmClient.tccGlobalTransaction(dtmClient.genGid(), TccTestController::tccTrans);
} catch (Exception e) {
log.error("tccGlobalTransaction error", e);
return "fail";
}
return "success";
}
/**
* define TCC sub-transactions by calling callBranch
*
* @param tcc
* @return
* @see TransController
*/
public static void tccTrans(Tcc tcc) throws Exception {
Response outResponse = tcc
.callBranch("", svc + "/TransOutTry", svc + "/TransOutConfirm", svc + "/TransOutCancel");
log.info("outResponse:{}", outResponse);
Response inResponse = tcc.callBranch("", svc + "/TransInTry", svc + "/TransInConfirm", svc + "/TransInCancel");
log.info("inResponse:{}", inResponse);
}| Back | FazBrowse Home | New Git URL |