分库分表利器——sharding-sphere

得不到的东西让你彻夜难眠,没有尝试过的技术让我跃跃欲试。

本着杀鸡焉用牛刀的准则,我们倡导够用就行,不跟风,不盲从。

所以,结果就是我们一直没有真正使用分库分表。曾经好几次,感觉没有分库分表(起码要分表),项目就做不下去了,但是由于跨部门、工具约束、项目被砍等各种原因最终都偃旗息鼓,乖乖的搞单表加索引去了。

应该是没有及时同步公司内部知识库的原因,过去的几次分库分表的尝试也是让人哭笑不得。公司内部流传着一件上古神器,可以解决分表问题。

既然是上古神器,那么使用的流程肯定也是非常原始。没错,因为是基于windows系统写的一个桌面程序,所以必须到windows平台安装执行,而公司绝大多数已经不用windows系统了。针对这个问题,有两个解决方式,一种是找台式机,一种是安装虚拟机。

我选择了后者,毕竟自己安装,独立自主,可以随心所欲的操作。好了,环境算是有了,这时候肯定要有个教程,毕竟口口相传这种模式会随着时间的推移慢慢变得不好使了,尤其是使用场景不多的情况下。

打开教程的那一刻,仿佛拿到的是易筋经这样的武功秘籍,里面只有几张内功心法似的截图,要想参透,全靠自己领悟。

睁大眼睛,在放大缩小拖拽各种操作中,领会截图的真正含义,生怕出现像漏看“欲练此功,必先自宫”的下半句“如不自宫,也能成功”带来的惨痛教训经历。

每一步都很小心,然后点击相应的神奇按钮。一通操作,Duang,分表就完成了,而且连相应的ibatis文件都生成好了。你需要做的就是在代码里面调用相应接口就好了。

可以想见,作为上古神器,自有其光芒的地方,但是可能因为年久失修,所以理解上会有些难度。虽然一通操作猛如虎,但是回头让你再详述下具体的流程可能已经忘得差不多了。

后来,在部门内部是有小伙伴专门研究过并做了分享,但是鉴于使用场景不多,所以没有引起大家过多的关注。公司内部也有其他部门引进或者自研出了更好的工具,但是没有参加分享,所以也是一度搁置。

这次的项目按照老大一贯扩展性的做法,应该是要做分表的了,没成想,初步过方案的时候说分啥表,现在的量级单表完全够用。好吧,虽然表没分成,但是接触到了分表利器sharding-sphere。

sharding-sphere 简介

Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这3款相互独立的产品组成。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

官网

Github

https://github.com/sharding-sphere

三大核心模块分别是Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar。

Sharding-JDBC

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

分库分表利器——sharding-sphere

Sharding-Proxy

定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。

分库分表利器——sharding-sphere

Sharding-Sidecar

定位为Kubernetes或Mesos的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的的啮合层,即Database Mesh,又可称数据网格。

分库分表利器——sharding-sphere

sharding-sphere-example

在Github上分别有三个项目,分别是sharding-sphere、sharding-sphere-doc和sharding-sphere-example。从字面就可以看出每个项目是做什么的。

既然是要入门,那就clone下sharding-sphere-example这个项目。

1、克隆项目

在命令行执行git clone https://github.com/sharding-sphere/sharding-sphere-example.git

完成后,就可以看到sharding-sphere-example项目,导入intellij idea中。

2、编译项目

进入项目根目录下,编译项目。

我这边下载的项目sharding-sphere.version是3.0.0.M2-SNAPSHOT,编译的时候一直报该版本找不到,无法下载,去中央仓库也没有找到。

分库分表利器——sharding-sphere

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpspzf.html