一、什么是分布式事務(wù)?
二、lcn的實(shí)現(xiàn)思路
Lcn 的本質(zhì)就是提供了一個全局的事務(wù)管理器
本地事務(wù)的提交還是回滾,由全局的事務(wù)管理器決定
2.1 本地執(zhí)行的狀態(tài)怎么提交給全局事務(wù)?
使用切面攔截本地事務(wù)的執(zhí)行結(jié)果,使用tcp 發(fā)送給tx-manager
2.2 本地事務(wù)的提交或回滾怎么實(shí)現(xiàn)?
等待tx-manager通知自己
三、lcn的使用
3.1 下載lcn-manager (全局的事務(wù)管理器)
3.2 配置lcn-manager
配置eureka 并且配置redis
Redis:
3.3 啟動lcn
3.4 模擬轉(zhuǎn)賬服務(wù)
數(shù)據(jù)庫:
3.4.1 add-service
3.4.2 decr-service
3.5 2 個微服務(wù)都需要添加依賴
<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> <!-- 依據(jù)druid 來實(shí)現(xiàn)的攔截功能 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.19</version> </dependency>
3.6 需要自定義數(shù)據(jù)庫的連接池
在2 個微服務(wù)的啟動類或配置類里面都可以添加
@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 事務(wù)的發(fā)起者
轉(zhuǎn)賬:
事務(wù)的參與者
減少錢:
加錢:
3.7.2 添加配置文件
3.8 啟動2 個微服務(wù)
3.9 測試轉(zhuǎn)賬服務(wù)
到此這篇關(guān)于LCN分布式事務(wù)解決方案詳解的文章就介紹到這了,更多相關(guān)LCN分布式事務(wù)解決內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/qq_41532872/article/details/94591415