基于中间件适配
Tomcat
Step1:在本地安装Tomcat 7.0.109
Step2:将vastbase驱动包vastbase-2.0.jar拷贝进apache-tomcat-7.0.109/lib
Step3:在Tomcat中配置数据源和驱动
打开apache-tomcat-7.0.109/conf/context.xml做如下配置:
配置Tomcat的数据源信息及驱动,其中name为自定义的数据源名称
Step4:创建web项目,指定本地Tomcat7.0.109
在Configuration中添加Local Tomcat Server,Configure选择本地安装的Tomcat 7.0.109
部署项目
Step5:在web.xml中配置数据源
其中
Step6:在JSP中使用数据库连接池
其中DSNAME中”java:comp/env/myDatasource”是固定写法,表示得到配置环境
ShardingSphere
ShardingSphere-JDBC
引入vastbase的maven依赖
数据分片
Step1:准备好分片后的数据库
Step2:引入ShardingSphere的maven依赖
Step3:配置shardingsphere
1.配置多数据源信息
2.配置分片策略
相关数据的SQL操作便会被路由到所配置的数据源分片节点上
分布式事务
以XA事务为例
Step1:导入maven依赖
Step2:编写配置类,向Spring容器中注入PlatformTransactionManager和JdbcTemplate
Step3:编写业务类,实现数据库操作并使用业务
ShardingSphere分布式事务注解@ShardingTransactionType要和Spring事务注解@Transactional一并使用才会生效;
doInsert方法向两个数据库中插入数据,之后手动抛出异常,在此之前对两个数据插入的数据都会回滚。
若要改成使用BASE事务,需要先启动seata服务器并导入Sharding-BASE依赖
读写分离
Step1:导入maven依赖
Step2:配置数据源
配置多数据源,指定主库与从库。4.1.1版本支持单主库多从库,不支持主从库之间的数据同步。
当一个线程中没有进行主库的修改,读操作会被路由到从库进行查询;若一个线程中主库进行了修改,为了保持数据一致性,读操作也会被路由到主库查询。
ShardingSphere-Proxy
首先需要下载并解压apache-shardingsphere-4.1.1-sharding-proxy-bin.tar
由于ShardingSphere-Proxy默认只支持postgresql,使用其他数据库时要先将对应java驱动包加入lib目录,因此将vastbase-2.0驱动包加入lib目录。
数据分片
在/conf/config-sharding.yaml配置数据源及数据分片策略
Step1:配置数据源
Step2:配置分片策略
Step3:配置server.yaml
在/conf/server.yaml配置代理数据库的用户、密码及逻辑数据库权限
Step4:启动shardingsphere-proxy服务
windows运行:/bin/start.bat
linux运行:/bin/start.sh
Step5:使用代理数据库
使用任何PostgreSQL客户端,与代理数据库建立连接,即可当作普通数据库来使用
用户及密码:server.yaml中的配置
Host:127.0.0.1
Port:3307
读写分离
在/conf/config-master_slave.yaml配置数据源及读写分离主从库
Step1:配置数据源
Step2:配置主从库
指定主库与从库,并将主-从数据库指定为默认数据库
Step3:配置server.yaml
在/conf/server.yaml配置代理数据库的用户、密码及逻辑数据库权限
Step4:启动shardingsphere-proxy服务
windows运行:/bin/start.bat
linux运行:/bin/start.sh
Step5:使用代理数据库
使用任何PostgreSQL客户端,与代理数据库建立连接,即可当作普通数据库来使用
用户及密码:server.yaml中的配置
Host:127.0.0.1
Port:3307