seata官方文档
http://seata.io/zh-cn/docs/overview/what-is-seata.html
最新版的seata比之前的旧版配置比较起来减少了配置项,在clent端不需要配置两个点儿conf文件了,精简了很多
只需要配置三个部分,一是servert端的 registry.conf 文件,另一个是clent端的yaml文件,最后一个则是代理数据源。
因此,新版seata使我们的配置出错率大大降低了。

注册中心的搭建

seata 的server端配置与启动

启动seata之前要先启动注册中心 ,并配置seata的conf目录下的 registry.conf 文件。
type类型改成 eureka方式启动
serviceUrl = “http://localhost:8001/eureka” 是注册中心的地址
application = “seata-server” 表示 在注册中心 seata的名称显示为seata-server

启动命令 : 在bin目录的cmd窗口下 输入: seata-server.bat -p 端口号
启动后 就可以在注册中心页面上看到seata的client端了

client端配置

ymal配置

seata:tx-service-group: bank1app-fescar-service-groupservice:vgroup-mapping:bank1app-fescar-service-group: seata-server # 此处配置对应Server端配置registry.eureka.application的值registry:type: eurekaeureka:service-url: http://127.0.0.1:8001/eureka/weight: 1

注意

配置代理数据源

配置代理数据源时会产生 数据源循环依赖问题,
解决办法是在启动类上配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

spring:application:name: bank1app##################### DB #####################datasource:proxydatasource:url: jdbc:mysql://localhost:3306/bank1?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8username: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.DriverinitialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT user()testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: trueconnection-properties: druid.stat.mergeSql:true;druid.stat.slowSqlMillis:5000

配置类

package com.li.config;import com.alibaba.druid.pool.DruidDataSource;
import io.seata.rm.datasource.DataSourceProxy;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;import javax.sql.DataSource;@Configuration
public class DatabaseConfiguration {private final ApplicationContext applicationContext;public DatabaseConfiguration(ApplicationContext applicationContext) {this.applicationContext = applicationContext;}@Bean@ConfigurationProperties(prefix = "spring.datasource.proxydatasource")public DruidDataSource ds0() {DruidDataSource druidDataSource = new DruidDataSource();return druidDataSource;}@Primary@Beanpublic DataSource dataSource(DruidDataSource ds0)  {DataSourceProxy pds0 = new DataSourceProxy(ds0);return pds0;}}

到此,配置上的东西我们就已经配置完了 ,接下来就是代码开发部分了

服务开发

完整代码

https://github.com/liql574550413/–2pc-seata

springcloud集成seata+euraka 构成的分布式事务控制(待补充)相关推荐

  1. Seata分布式事务控制整合Mybatis-Plus导致事务控制失效

    解决方案 1. pom文件引入Druid数据源 <!--druid--> <dependency> <groupId>com.alibaba</groupId ...

  2. 微服务seata 1.4.2 分布式事务TCC模式示例

    seata TCC模式和AT模式的基础环境是一样的,只是在实现方式上有所区别,而且TCC模式还可以和AT模式混合使用. 关于AT模式示例,可以参考seata 1.4.2 分布式事务AT模式示例. TC ...

  3. 分布式事务控制解决方案

    day1      01-分布式事务专题课程介绍.mp4      03-基础概念-分布式事务.mp4      04-基础概念-分布式事务产生的场景.mp4      05-分布式事务基础理论-理解 ...

  4. SpringCloud集成Seata精简入门教程

    seata注册到nacos,实现高可用 一枚路过的程序猿 https://www.jianshu.com/p/cf455eaa650a nacos下载 seata官网文档 seata下载 在Mysql ...

  5. springCloud的了解(四)—分布式事务问题

    前言 昨天,我们又学习了springCloud的剩余的大部分组件,config配置中心,Feign声明式服务调用,Turbin集群监控,Bus消息总线. 关于SpringCloud的组件内容,我们暂时 ...

  6. TCC事务补偿机制实现分布式事务控制介绍

    补偿事务(TCC) TCC 将事务提交分为 Try(method1) - Confirm(method2) - Cancel(method3) 3个操作.其和两阶段提交有点类似,Try为第一阶段,Co ...

  7. Springcloud+Seata+nacos 分布式事务项目搭建 AT模式

    前言 本文要求对Springcloud有一定了解,对分布式事务本身有一定认知,如果不了解微服务,建议先看看Spring Cloud的基本认识和使用Spring Cloud的基本教程,再回头学习本文 为 ...

  8. 分布式事务解决方案 - SpringCloud Alibaba Seata

    目录 github代码:GitHub - 18409489244/seata: 基于springcloud alibaba seata 的分布式事务demo 一.常见分布式事务解决方案 二.分布式事务 ...

  9. SpringCloud分布式事务,版本二:添加 Seata 分布式事务版本

    基于 Seata 1.4.0 版本 首先贴出此项目地址:Seata 分布式事务版本 先了未添加事务项目再看此版本:未添加事务版本 此文章是基于上一篇的项目基础上添加的内容,所以务必先看上一篇 Seat ...

  10. 分布式事务解决方案,Seata的基本配置和使用

    文章目录 1. 分布式事务介绍 ①:本地事务 ②:分布式事务 ③:常见的分布式事务解决方案 3. 2PC与3PC ①:2PC与3PC的区别 3. Seata介绍 ①:Seata的三种角色 ②:Seat ...

最新文章

  1. 查看spark是否有僵尸进程,有的话,先杀掉。可以使用下面命令
  2. 异常“只能在执行Render()的过程中调用RegisterForEventValidation”的解决办法(转)...
  3. 《Unity3D-控制角色受伤的时候身体颜色变化的代码》
  4. (史上最全)104个实用网络爬虫合集。
  5. 带标题和导航点的ViewPager
  6. 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)
  7. 用计算机写作ppt文库,计算机专业英语Unit 19 计算机专业英语写作.pptx
  8. graph slam tutorial :从推导到应用2
  9. offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法
  10. 模仿QZONE挂图效果
  11. VS2017 CUDA编程学习实例1:CUDA实现向量点乘
  12. 干货|别找了,分享80个无版权、高清、免费图片素材网站给你!
  13. ssh 远程锁住解锁_Linux 中锁定和解锁用户帐户的三种方法
  14. 计算机生物科学论文,生物信息学论文范文
  15. 路由表的下一跳地址如何计算
  16. 2010计算机操作员中级试题,计算机操作员中级操作技能考核试卷(一)
  17. php随机发牌游戏,JavaScript_javascript实例--教你实现扑克牌洗牌功能,我们一般都会按照顺序把随机 - phpStudy...
  18. 个人博客详细文章目录索引(持续更新)
  19. 如何通过银行卡号 判断归属银行
  20. (最新)唯品会WEB端加密参数逆向分析

热门文章

  1. plc模拟器软件_【万泉河】咸鱼上买了个二手施耐德PLC,上当了。
  2. 猿创征文|国产数据库之OceanBase详解安装和使用
  3. 初识大数据 小孩子都懂的大数据
  4. 华为设备为(USG6000)的防火墙:配置远程管理防火墙最常见的几种方式。
  5. Ubuntu系统安装分区
  6. CDA Level I 模拟题(1)【附答案解析】
  7. React使用ECharts
  8. 三种1:4传输线变压器巴伦的分析
  9. java 枚举单例模式_使用枚举实现java单例模式示例代码
  10. 微信企业号开发接口文档