ShardingSphere(sharding_jdbc_sharding_proxy)
Sharding-jdbc
读写分离
概念



![]()
sharding-jdbc不做数据同步(数据同步还是由mysql处理)
读写分离实现
MySQL主从实现
![]()
![]()
主库my.ini

从库my.ini

![]()

![]()


sharding-jdbc读写分离实现
application.properties主从配置
![]()


![]()
testcode


sharding_proxy
简介
https://shardingsphere.apache.org/document/current/cn/quick-start/shardingsphere-proxy-quick-start/
透明化的 数据库代理
理论上支持任何使用 MySQL、PostgreSQL、openGauss 协议的客户端操作数据,对异构语言、运维场景更友好。

如何使用
一个独立应用,需要单独安装部署,进行分库分表/读写分离配置;
https://shardingsphere.apache.org/document/current/cn/quick-start/shardingsphere-proxy-quick-start/
操作步骤(二进制包为例)
mysql库此时只有edu_1,没有任何表

下载 ShardingSphere-Proxy
二进制包 https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-proxy/startup/bin/
https://shardingsphere.apache.org/document/current/cn/downloads/
解压二进制包
配置(conf目录)
server.yaml
去掉注释(authentication和props的注释打开)

config-sharding.yaml
去掉注释(schemaName、dataSources、shardingRules注释打开)
如果使用mysql,需要将mysql驱动包引入ext-lib目录


启动sharding-proxy
bin/start.sh [port] [/path/to/conf]

使用客户端连接 ShardingSphere-Proxy
mysql -h${proxy_host} -P${proxy_port} -u${proxy_username} -p${proxy_password}
进行sql命令操作

sharding-proxy新增表/新增数据



查看mysql数据库表&数据

sharding-proxy会根据策略分表,且 根据策略 插入不同表数据
sharding-proxy实现分库分表
MySQL中创建多个分库

修改conf下的config-sharding.yaml


启动sharding-proxy服务

使用客户端连接 Sharding-Proxy
mysql -h${proxy_host} -P${proxy_port} -u${proxy_username} -p${proxy_password}
Sharding-Proxy中新建表/新增数据


MySQL中查看对应的表&数据

sharding-proxy实现读写分离
创建3个数据库
1个master、2个slave(本次都在同一台服务器中部署不同的数据库)

修改conf下的config-master_slave.yaml配置


启动sharding-proxy服务

Sharding-Proxy中新建表/新增数据

master、slave中创建表

新增数据(不指定数据库),根据读写分离策略,添加到master中数据
查询数据(不指定数据库),在从数据库中查询(由于未配置数据同步,从数据库数据为空)
![]()
浙公网安备 33010602011771号