Sharding-JDBC多数据源动态切换

多数据源下配置shardingjdbc,导致主数据源失效的场景 踩坑sharding jdbc,集成多数据源 使用Shardingsphere和dynamic-datasource实现多数据源切换并分表 sharding-jdbc配置的数据源连接失败 shardingsphere分库分表集成多数据源 shardingsphere配置和双数据源dynamic该如何配置 阅读详情

背景介绍

我们公司项目使用多个mysql实例,业务分库,无需分表。需要实现如下功能:

  • 多数据源动态切换
  • 读写分离
  • 分布式事务(XA)

方案介绍

通过阅读Sharding-Sphere官方文档,结合业务进行了设计,给出如下解决方案:

  • 使用Sharding-JDBC管理数据源,自带读写分离和分布式事务
  • 使用自定义强制路由方式,满足业务需要
  • 使用AOP,根据不同数据库不同包路径,指定强制路由数据库

版本说明

我们项目目前使用3.1.0的sharding-jdbc,3.x是apache之前的版本,和最新版4.x不兼容,很多早期用户应该都是用的3.x的版本。我在github上针对不同版本给出不同的例子。
sharding-jdbc 3.1.0的例子:shardingjdbc-xa-3.x
sharding-jdbc 4.0.0的例子:shardingjdbc-xa-4.x

实现方式

这里以3.x为例,进行代码说明:

1. spring-boot依赖
<dependency>
     <groupId>io.shardingsphere</groupId>
     <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
     <version>3.1.0</version>
 </dependency>
 <dependency>
     <groupId>io.shardingsphere</groupId>
     <artifactId>sharding-transaction-2pc-xa</artifactId>
     <version>3.1.0</version>
 </dependency>
 <dependency>
     <groupId>io.shardingsphere</groupId>
     <artifactId>sharding-transaction-spring-boot-starter</artifactId>
     <version>3.1.0</version>
 </dependency>
2. 启动类配置
// JtaAutoConfiguration.class 这个必须配置
@SpringBootApplication(exclude = JtaAutoConfiguration.class,scanBasePackages = {
   
    "com.jiyu"})
// mybatis配合
@MapperScan(basePackages = "com.jiyu.dao")
3. yml配置

这里需要注意,实际主库为:db02-master,db02-master,sharding中配置逻辑数据库:ds_db01,ds_db02。

sharding:
  jdbc:
    datasource
SpringBoot+Sharding-JDBC+MyBatisPlus进行多数据源分表操作 springboot+Sharding-JDBC进行多数据源分表操作 文章目录springboot+Sharding-JDBC进行多数据源分表操作1.前言1.1什么是Sharding-JDBC?什么是分库分表?为什么要分库分表?可1.2关于个人学习的说明2.操作步骤2.2搭建环境2.3创建数据库2.4配置application.properties文件欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创 阅读详情

相关推荐

【教程】shardingjdbc(九)配置数据源分离

读写分离是比较常见的应用场景,读库负责写入操作,多个从库通过binlog日志同步主库的写操作。读操作都落到读库上,写操作落到写库上; 基本使用 shardingjdbc 也支持读写分离的功能,同时也支持读操作的负载均衡算法; 这里有3个数据源; db1 db2 db3 db1 是写库。db2 和db3 是读库; 每个库中都一个相同的表 1. 首先配置3个数据源 2. 配置那些库是写库,那些库是读库。 这样配置表示写操作到source-0 读操作从source-1 和sour

愤怒的菜鸟博客 1001

sharding分表应用笔记(三)——多数据源路由

自定义一个指定路由数据库的注解,通过在表的service类上添加注解来完成对应表的指定路由操作。

nagiumi的博客 407

Spring+MyBatis+Sharding-JDBC整合实战项目

先别急着写代码,咱们得搞清楚一个问题:为什么要用这个组合?有没有更好的替代方案?这才是真正的高手玩法!我们要自定义一个,继承 Spring 提供的@Override// 从上下文中取 key然后配套一个线程安全的上下文工具类:最后在配置类中组装所有真实数据源:@Bean@Primary// 默认走主库这样一来,只要你在执行 SQL 前调用:后续的所有数据库操作都会自动命中从库!是不是很酷?😎不过手动切太麻烦怎么办?

weixin_31720909的博客 625

win10删除vmware12后,重新安装失败(遗留注册表问题)解决总结

之前安装过一次VMware虚拟机,后来由于某些已遗忘原因把它卸载了,但是没有卸载完全,为以后安装留下了一些麻烦,现在根据我google很多内容总结后写下了自己的解决办法。 一些我搜的的可以用的VM12的注册码 5A02H-AU243-TZJ49-GTC7K-3C61N ZZ510-DYX47-48ERP-D6XZG-YCKU2 YV5MU-2FX5H-M841P-LZX5X-PYHX8

Jeason的博客 2万+

Verilog仿真必备:FSDB dump命令全解析与实战配置指南

本文深入解析了Verilog仿真中FSDB波形记录的核心命令与实战配置技巧。针对大规模SoC验证场景,详细介绍了如何通过$fsdbDumpvars、$fsdbDumpfile等命令实现信号精准捕获、文件体积控制和动态启停,并提供了智能化的分层dump策略,帮助工程师在保证调试信息完整性的同时,大幅提升验证效率并有效管理波形数据。

cnn8visionary的博客 348

一文读懂 SAP Web Dispatcher 配置参考:让 Gateway、OData 与后端服务各走各路

SAP Web Dispatcher在Fiori项目中常被低估,实际上它作为企业系统的HTTP(s)入口,承担着流量分发和安全防护双重职责。该组件通过URL路径规则(如/sap/opu/odata/转发至Gateway系统)实现多系统路由,隐藏后端复杂性,提供统一访问入口。配置要点包括HTTPS参数设置、客户端证书转发、端口定义以及系统冲突处理策略。合理的配置能确保前端统一访问、网络边界清晰可控,同时降低跨团队协作成本。生产环境需根据实际网络架构调整官方示例配置。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 156

使用 Pfam 和 InterProScan 进行蛋白质家族和功能域的分析

本文介绍了使用Pfam和InterProScan进行蛋白质家族与功能域分析的方法。主要内容包括:1) Pfam数据库的本地化使用,通过hmmscan工具比对Pfam-A.hmm数据库,并提供了批量处理Python脚本;2) InterProScan的安装配置与命令行参数详解,支持多数据库整合分析;3) 补充介绍了基于curl的Uniprot在线查询方法。文章提供了从软件安装到实战分析的完整流程,适用于本地化、批量化蛋白质功能注释需求,特别是无网络环境或大规模数据分析场景,适合不同水平的生物信息学用户。

Protein Designer的博客 1918

Orin 调试GMSL camera 96712手册重点

96712基础理解

乐于分享 9192

YOLOv11改进策略【Conv和Transformer】| IJCAI 2024 利用FreqFormer中的SFA 空间 - 频率注意力和CTA 通道转置注意力 二次改进C3k2

在FreqFormer模型中,SFA(Spatial-Frequency Attention)和CTA(Channel Transposed Attention)模块是关键组成部分,它们针对传统Transformer在图像超分辨率任务中的不足而设计,旨在更好地恢复高频细节,提升模型性能。

Limiiiing的博客 758

VMware16虚拟机:安装Windows10系统---超详细教程

VMware16虚拟机:安装Windows10系统---超详细教程

MQ0522的博客 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 分布式事务核心理论
下一篇: java IO模型详解
鲫鱼哥
博客等级 码龄10年 18粉丝 36原创
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值