服务器之家

服务器之家 > 正文

LCN分布式事务解决方案详解

时间:2021-11-23 12:57     来源/作者:司天宏

 

一、什么是分布式事务?

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

 

二、lcn的实现思路

Lcn 的本质就是提供了一个全局的事务管理器
本地事务的提交还是回滚,由全局的事务管理器决定

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

 

2.1 本地执行的状态怎么提交给全局事务?

使用切面拦截本地事务的执行结果,使用tcp 发送给tx-manager

 

2.2 本地事务的提交或回滚怎么实现?

等待tx-manager通知自己

 

三、lcn的使用

 

3.1 下载lcn-manager (全局的事务管理器)

LCN分布式事务解决方案详解

 

3.2 配置lcn-manager

配置eureka 并且配置redis

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

Redis:

LCN分布式事务解决方案详解

 

3.3 启动lcn

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

 

3.4 模拟转账服务

数据库:

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

 

3.4.1 add-service

LCN分布式事务解决方案详解

 

3.4.2 decr-service

LCN分布式事务解决方案详解

 

3.5 2 个微服务都需要添加依赖

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>com.codingapi</groupId>
			<artifactId>transaction-springcloud</artifactId>
			<version>${lcn.last.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.codingapi</groupId>
			<artifactId>tx-plugins-db</artifactId>
			<version>${lcn.last.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- 依据druid 来实现的拦截功能 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.19</version>
		</dependency>

 

3.6 需要自定义数据库的连接池

在2 个微服务的启动类或配置类里面都可以添加

@Bean
	public DataSource dataSource() {
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setUrl(env.getProperty("spring.datasource.url"));
		dataSource.setUsername(env.getProperty("spring.datasource.username"));//用户名
		dataSource.setPassword(env.getProperty("spring.datasource.password"));//密码
		dataSource.setInitialSize(10);
		dataSource.setMaxActive(50);
		dataSource.setMinIdle(0);
		dataSource.setMaxWait(60000);
		dataSource.setValidationQuery("SELECT 1");
		dataSource.setTestOnBorrow(false);
		dataSource.setTestWhileIdle(true);
		dataSource.setPoolPreparedStatements(false);
		return dataSource;
	}

 

3.7 使用

 

3.7.1 事务的发起者

转账:

LCN分布式事务解决方案详解

事务的参与者
减少钱:

LCN分布式事务解决方案详解

加钱:

LCN分布式事务解决方案详解

 

3.7.2 添加配置文件

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

 

3.8 启动2 个微服务

LCN分布式事务解决方案详解

 

3.9 测试转账服务

LCN分布式事务解决方案详解

LCN分布式事务解决方案详解

到此这篇关于LCN分布式事务解决方案详解的文章就介绍到这了,更多相关LCN分布式事务解决内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_41532872/article/details/94591415

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部