概述
什么是Sharding Sphere
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。
ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。它与NoSQL和NewSQL是并存而非互斥的关系。
什么是Sharding-JDBC
Sharding-JDBC是ShardingSphere的第一个产品,也是ShardingSphere的前身。它定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以Jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC的各种ORM框架。
- 适用于任何基于Java的ORM框,如:JPA,Hibernate,Mybatis,Spring JDBC Template或直接使用JDBC。
- 基于任何第三方数据库连接池,如:DPCP,C3P0,BoneCP,Druid,HikariCP等。
- 支持人员实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。
Sharding-JDBC的优势在于对Java应用的友好度。
什么是Sharding-Proxy
Sharding-Proxy是ShardingSphere的第二个产品。它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client,MySQL Workbench、Navicat等)操作数据,对DBA更加友好。
- 向应用程序完全透明,可直接当前MySQL使用。
- 适用于任何兼容MySQL协议的客户端。
Sharding-Proxy的优势在于对异构语言的支持,以及为DBA提供可操作的入口。