赞
踩
Apache ShardingSphere
是一款开源的分布式数据库中间件组成的生态圈。它由Sharding-JDBC
、Sharding-Proxy
和Sharding-Sidecar(规划中)
这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构
、异构语言
、容器
、云原生
等各种多样化的应用场景。
ShardingSphere项目状态如下:
ShardingSphere
定位为关系型数据库
中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库
。
Sharding-JDBC
:被定位为轻量级Java框架,在Java的JDBC层提供的额外服务,以jar包形式使用。Sharding-Proxy
:被定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。Sharding-Sidecar
:被定位为Kubernetes或Mesos的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问。Sharding-JDBC
和Sharding-Proxy
的作用位置查看:
Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar三者区别如下:
Sharding-JDBC
定位为轻量级Java框架
,在Java的JDBC层提供的额外服务。数据分片
分布式事务
数据库治理(治理等于管理)
Sharding-JDBC
的入口API
,采用工厂方法的形式提供。 目前有ShardingDataSourceFactory
和MasterSlaveDataSourceFactory
两个工厂类。
ShardingDataSourceFactory
支持分库分表、读写分离操作MasterSlaveDataSourceFactory
支持读写分离操作Sharding-JDBC
的配置对象,提供灵活多变的配置方式。TableRuleConfiguration
和MasterSlaveRuleConfiguration
。
TableRuleConfiguration
封装的是表的分片配置信息,有5种配置形式对应不同的Configuration
类型。MasterSlaveRuleConfiguration
封装的是读写分离配置信息。ShardingJDBC
通过ShardingRuleConfiguration
和MasterSlaveRuleConfiguration
生成真正供ShardingDataSource
和MasterSlaveDataSource
使用的规则对象。ShardingDataSource
和MasterSlaveDataSource
实现了DataSource
接口,是JDBC
的完整实现方案。引入Maven
:<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>${latest.release.version}</version>
</dependency>
修改规则配置
Sharding-JDBC
可以通过Java,YAML,Spring命名空间和Spring Boot Starter四种方式配置,开发者可根据场景选择适合的配置方式。创建DataSource
ShardingDataSourceFactory
工厂和规则配置对象获取ShardingDataSource
,然后即可通过DataSource选择使用原生JDBC开发,或者使用JPA, MyBatis等ORM工具。DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, props);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。