简介
ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。
ShardingSphere 定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与 NoSQL 和 NewSQL 是并存而非互斥的关系。NoSQL 和 NewSQL 作为新技术探索的前沿,放眼未来,拥抱变化,是非常值得推荐的。反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物本质。 关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。
ShardingSphere 已经在2020年4月16日从Apache孵化器毕业,成为 Apache 顶级项目。
快速入门
创建表
这里需要注意的是字段不要有关键字子类的,尽量长一点。
create database `cloud-order`;
use `cloud-order`;
create database if not exists `cloud-order` default charset utf8mb4 collate utf8mb4_general_ci;
create table t_order_1 (
`oid` bigint(20) unsigned not null auto_increment comment '主键id',
`order_code` varchar(64) not null default '' comment '订单号',
primary key (`oid`),
key `idx_order_code` (`order_code`)
) comment '订单表';
create table t_order_2 (
`oid` bigint(20) unsigned not null auto_increment comment '主键id',
`order_code` varchar(64) not null default '' comment '订单号',
primary key (`oid`),
key `idx_order_code` (`order_code`)
)comment '订单表';
添加依赖
我说下项目的基本情况:
- spring boot 2.6.5
- spring cloud 2021.0.1
- mybatis-spring-boot-starter 2.2.2
- sharding-jdbc-spring-boot-starter 4.1.1
目前来说都是比较新的版本,所以肯定会踩很多的坑。具体的配置如下(由于我的配置是之前的项目修改,