本使用手册实验使用 TX-LCN 框架管理在Spring Boot/Spring Cloud 中管理分布式事务。
准备环境
- 启动 Redis 服务
最简单的方法就是使用 Docker 。可参考 用Docker体验Redis
- 启动 MySQL 服务
最简单的方法也是使用 Docker 。可参考 在Docker中使用MySQL服务器
启动 MySQL 后,执行一下命令建立数据库(Schema)
在 docker 中启动 bash:
1
| docker exec -it mysql /bin/bash
|
登录到 mysql 中:
建立名为: tx-manager 的数据库:
1
| CREATE DATABASE IF NOT EXISTS tx-manager DEFAULT CHARACTER SET utf8;
|
准备 Tx-Manager 项目
在 IDEA 或 Eclipse 中构建一个简单的 maven 项目,
groupId: cn.com.hohistar.cloud
artifactId: txlcn-tm-service
然后用以下的内容替换掉项目中原来的 pom.xml 中的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> </parent> <groupId>cn.com.hohistar.cloud</groupId> <artifactId>txlcn-tm-service</artifactId> <version>0.0.1-SNAPSHOT</version> <name>txlcn-tm-service</name> <description>Demo project for Spring Boot</description>
<properties> <java.version>1.8</java.version> </properties>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
<dependency> <groupId>com.codingapi.txlcn</groupId> <artifactId>txlcn-tm</artifactId> <version>5.0.2.RELEASE</version> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
|
构建启动类:
在 src/main/java 中新建一个名为: cn.com.hohistar.cloud.txlcntmservice 的包,在包中新建一个名为: TxlcnTmServiceApplication 的类,使用以下内容:
1 2 3 4 5 6 7 8
| @SpringBootApplication @EnableTransactionManagerServer public class TxlcnTmServiceApplication {
public static void main(String[] args) { SpringApplication.run(TxlcnTmServiceApplication.class, args); } }
|
添加配置文件
在 src/main/resources 中添加名为: application.properties 的配置文件, 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| spring.application.name=TransactionManager server.port=7970
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tx-manager?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=validate
tx-lcn.manager.host=127.0.0.1
tx-lcn.manager.port=8070
tx-lcn.manager.heart-time=300000
tx-lcn.manager.dtx-time=8000
tx-lcn.message.netty.attr-delay-time=#123;tx-lcn.manager.dtx-time}
tx-lcn.manager.concurrent-level=160
tx-lcn.manager.admin-key=codingapi
tx-lcn.manager.dtx-lock-time=#123;tx-lcn.manager.dtx-time}
tx-lcn.manager.seq-len=12
tx-lcn.manager.ex-url-enabled=false
tx-lcn.manager.ex-url=/provider/email-to/***@**.com
tx-lcn.logger.enabled=true tx-lcn.logger.driver-class-name=#123;spring.datasource.driver-class-name} tx-lcn.logger.jdbc-url=#123;spring.datasource.url} tx-lcn.logger.username=#123;spring.datasource.username} tx-lcn.logger.password=#123;spring.datasource.password}
spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=
|
启动Tx-Manager服务
注意:第一次运行时将 spring.jpa.hibernate.ddl-auto 设置为 create
运行程序。然后在浏览器中访问:
显示登录界面,输入默认密码: codingapi, 即可进入管理界面进行查看。
下一步
下一篇文章