springboot+shardingsphere+seata实现多数据源分库分表以
及分布式事务
1、前⾔
为什么会有这种需求?原因是,本来⼀个数据库有很多表,然后其实数据量也不⼤。但是经过业务的发展,数据库中有两个表数据量变得特别⼤,⽽且由于表特别⼤,导致查询变得很慢。所以这个表肯定是要被切分的,最简单的情况下,只分表,但是由于计划分4个库,每个库每个表有8张,那么⼀个库有16张,所以总共有64张表。如果都放 mysql 的话,不知道能不能吃得消。但是最好还是分库吧,⽐较以后好扩展。
下载mysql为什么下载不了
所以,现在需求是:对于这两个⼤表,最后是进⾏分库分表。但是其他数据量⾮常⼩的表,放到原库不动就⾏。所以需要多数据源的切
换,shardingsphere 只针对分库分表,⽽别的数据源⽤来操作剩下的表。
本来由于业务的关系,这两个⼤表都是相互联系,⼀起操作,如果能按照⼀定的业务字段,将两张表的数据路由到同⼀个库,那么就不存在分布式事务的问题。可惜,事与愿违,这两个⼤表还夹杂者其他⼩表的修改操作,所以不得不上分布式事务了。。。。
这⾥想吐槽⼀下,shardingsphere 跟各种插件的兼容性不算是太好,我搞了⼀下午都没搞成功集成,后⾯⽤了其他⼈的案例来参
考,stupid
2、操作
⾸先,我要献上我的 pom ⽂件,版本最好别乱改,4.x 的 bug 实在是太多了(或者说是与其他系统集成的 bug 太多了),然后我所有的数据源都是 shardingjdbc 来管理的,就是不分库分表也是,只是不分库分表的不配分库分表规则即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。