前置条件

先了解Sharding-jdbc、Seata、Nacos这三样东西各自的作用以及单独使用时的配置。

整合代码已放在github,详细步骤章节请搭配此项目看,欢迎start

思路

如果已经做过Seata + Nacos的整合的,直接看最后的Seata结合Sharding-jdbc章节

详细步骤

Nacos + Seata服务端整合

我之前写过,不再赘述,引流:Seata-初体验以及避坑

项目工程整合Seata

参考文档:seata-example

  1. nacos服务端新增配置seata.properties

  2. application.yml增加seata配置

    # 服务发现
    spring:
    cloud:
    nacos:
    discovery:
    server-addr: localhost:8848
    username: nacos
    password: nacos
    application:
    name: order-service
    # seata配置
    seata:
    enabled: true
    application-id: ${spring.application.name}
    tx-service-group: ${spring.application.name}-tx-group
    # 配置中心
    config:
    type: nacos
    nacos:
    serverAddr: localhost:8848
    dataId: "seata.properties"
    username: nacos
    password: nacos
    # 注册中心
    registry:
    type: nacos
    nacos:
    application: seata-server
    server-addr: localhost:8848
    username: nacos
    password: nacos
    # seata默认使用cglib代理,整合sharding-jdbc会爆错,提示ShardingSphereDataSource无法序列化,有知道怎么解决的朋友,诚心希望告知下
    use-jdk-proxy: true

项目工程整合Sharding-jdbc

就是普通的springboot整合Sharding-jdbc,细说的话内容太多,不赘述。

可参考官方文档和我的案例工程

Seata结合Sharding-jdbc

参考文档

  1. 添加Sharding-jdbc 柔性事务jar包

    <dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-transaction-base-seata-at</artifactId>
    <version>${shardingsphere.version}</version>
    </dependency>
  2. 每个分片数据库添加undo_log表

  3. classpath(springboot中就是resource目录)中增加seata.conf文件

  4. 将Seata的事务(上面)注解换成Sharding-jdbc(下面两行)的

    // seata事务注解
    @GlobalTransactional @Transactional // spring的事务注解
    @ShardingSphereTransactionType(TransactionType.BASE) // Sharding-jdbc柔性事务

求助

有没有大佬知道怎么处理Seata整合Sharding-jdbc时,cglib序列化ShardingSphereDataSource报错的问题?欢迎讨论

参考资料

ShardingSphere-Seata事务

alibaba-stata-example

Sharding-jdbc + Seata + Nacos整合的更多相关文章

  1. Sharding JDBC整合SpringBoot 2.x 和 MyBatis Plus 进行分库分表

    Sharding JDBC整合SpringBoot 2.x 和 MyBatis Plus 进行分库分表 交易所流水表的单表数据量已经过亿,选用Sharding-JDBC进行分库分表.MyBatis-P ...

  2. spring boot:配置shardingsphere(sharding jdbc)使用druid数据源(druid 1.1.23 / sharding-jdbc 4.1.1 / mybatis / spring boot 2.3.3)

    一,为什么要使用druid数据源? 1,druid的优点 Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 但spring ...

  3. Spring boot项目集成Sharding Jdbc

    环境 jdk:1.8 framework: spring boot, sharding jdbc database: MySQL 搭建步骤 在pom 中加入sharding 依赖 <depend ...

  4. sharding jdbc(sphere) 3.1.0 spring boot配置

    sharding jdbc 2.x系列详解参见https://www.cnblogs.com/zhjh256/p/9221634.html. 最近将sharding jdbc的配置从xml切换到了sp ...

  5. Sharding jdbc 强制路由策略(HintShardingStrategy)使用记录

    背景 随着项目运行时间逐渐增加,数据库中的数据也越来越多,虽然加索引,优化查询,但是数据量太大,还是会影响查询效率,也给数据库增加了负载. 再加上冷数据基本不使用的场景,决定采用分表来处理数据,从而来 ...

  6. 记录因Sharding Jdbc批量操作引发的一次fullGC

    周五晚上告警群突然收到了一条告警消息,点开一看,应用 fullGC 了. 于是赶紧联系运维下载堆内存快照,进行分析. 内存分析 使用 MemoryAnalyzer 打开堆文件 mat 下载地址:htt ...

  7. Nacos整合Spring Cloud Gateway实践

    Spring Cloud Gateway官网:http://spring.io/projects/spring-cloud-gateway Eureka1.0的问题和Nacos对比:https://w ...

  8. 浅谈sharding jdbc

    定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架. ...

  9. Sharding JDBC案例实战

    基础分库 以下实例基于shardingsphere 4.1.0 + SpringBoot 2.2.5.RELEASE版本 依赖导入: <properties> <project.bu ...

随机推荐

  1. DDoS攻击--TCP攻击概述

    https://blog.csdn.net/qq_34777600/article/details/81945594

  2. c# DirectoryEntry LDAPS

    参考地址:https://stackoverflow.com/questions/54987776/ldap-connection-error-the-server-is-not-operationa ...

  3. grpc-java源码环境编译

    1. Clone 1.1 git clone https://github.com/grpc/grpc-java.git 1.2 idea 打开grpc-java工程 2.compile 2.1 ja ...

  4. Python技法:用argparse模块解析命令行选项

    1. 用argparse模块解析命令行选项 我们在上一篇博客<Linux:可执行程序的Shell传参格式规范>中介绍了Linux系统Shell命令行下可执行程序应该遵守的传参规范(包括了各 ...

  5. 2020级C++实验课-期末机考模拟考题解

    做这个题解的理由很简单,有很多同学想写但是不会写,凑巧我写了,所以搞个题解. 顺序就是题单里的顺序(界面左上角菜单切换文章,右上角目录方便查看) 1:黑马白马 题意: 随机得到一个数字,如果是偶数,则 ...

  6. 基础篇:java GC 总结,建议收藏

    垃圾标记算法 垃圾回收算法 major gc.mini gc.full gc.mixed gc 又是什么,怎么触发的 垃圾回收器的介绍 Safe Point 和 Safe Region 什么是 TLA ...

  7. 【JNPF修改通告】fastjson≤1.2.80反序列化漏洞

    近日Fastjson Develop Team 发现 fastjson 1.2.80及以下存在新的风险,存在反序列化漏洞.攻击者可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大,请大家 ...

  8. npm run serve修改为npm run dev

    找到package.json文件,打开文件找到  "serve": "vue-cli-service serve"  这一行,把前面的 serve 修改 dev ...

  9. Python报错 ImportError: DLL load failed while importing win32api: %1 不是有效的 Win32 应用程序 的解决方法

    今天在用jupyter notebook 的时候发生了kernel error,点开之后提示了以下报错信息 Traceback (most recent call last): File " ...

  10. Java - 六原则一法则

    Java - 六原则一法则 单一职责原则:一个类只做它该做的事情.(单一职责原则想表达的就是"高内聚",写代码最终极的原则只有六个字"高内聚.低耦合",所谓的高 ...