Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案,它提供了三种产品形态:ShardingSphere-JDBC、ShardingSphere-Proxy 和 ShardingSphere-UDF,分别适用于不同的场景。这里主要介绍如何在Java项目中使用ShardingSphere-JDBC和ShardingSphere-Proxy这两种方式。
ShardingSphere-JDBC 使用步骤
ShardingSphere-JDBC 是一个轻量级的 Java 框架,它以 jar 包的形式嵌入到应用程序中,通过 JDBC 连接数据库并提供分库分表、读写分离、数据治理等功能。
1.添加依赖:
在 Maven 或 Gradle 构建文件中引入 ShardingSphere-JDBC 的依赖。例如,在Maven的pom.xml文件中添加:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<!-- 根据最新版本替换 -->
<version>{latest_version}</version>
</dependency>
2.配置分片规则:
编写 YAML 或 properties 格式的配置文件,定义数据源、分片策略、规则等信息。
# sharding.yaml
dataSources:
ds0: !!org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ds0
username: root
password: password
ds1: ...
rules:
- !SHARDING
tables:
t_order:
actualDataNodes: ds${0..1}.t_order_${0..1}
tableStrategy:
standard:
shardingColumn: order_id
shardingAlgorithmName: t_order_inline
...
shardingAlgorithms:
t_order_inline:
type: INLINE
props:
algorithm-expression: t_order_${order_id % 2}
bindingTables:
- t_order
3.创建ShardingSphereDataSource:
在Java代码中加载配置文件并实例化ShardingSphereDataSource,替代传统的DataSource。
DataSource dataSource = ShardingSphereDataSourceFactory.createDataSource(yamlConfig);
4.常规JDBC操作:
使用dataSource进行JDBC连接和SQL执行,如同使用普通的数据源一样。
ShardingSphere-Proxy 使用
ShardingSphere-Proxy 是一个独立部署的服务端中间件,能够作为数据库代理层透明接入应用架构,支持与 ORM 框架无缝集成。
1.下载和启动 Proxy:
从官网下载 ShardingSphere-Proxy 的二进制包,解压后配置相关的 YAML 配置文件,包括数据源配置、规则配置等。并将 MySQL 驱动放置到指定目录下。
网友评论