
9、ShardingSphere 之 Sharding-Proxy 读写分离
发布日期:2021-05-06 17:44:40
浏览次数:20
分类:技术文章
本文共 2842 字,大约阅读时间需要 9 分钟。
文章目录
1 创建三个数据库
一主二从
CREATE SCHEMA `demo_ds_master` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
CREATE SCHEMA `demo_ds_slave_0` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
CREATE SCHEMA `demo_ds_slave_1` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
2 修改conf目录的conf-master-slave.yaml
schemaName: master_slave_dbdataSources: master_ds: url: jdbc:mysql://127.0.0.1:3306/demo_ds_master?serverTimezone=UTC&useSSL=false username: root password: chengwen connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 slave_ds_0: url: jdbc:mysql://127.0.0.1:3306/demo_ds_slave_0?serverTimezone=UTC&useSSL=false username: root password: chengwen connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 slave_ds_1: url: jdbc:mysql://127.0.0.1:3306/demo_ds_slave_1?serverTimezone=UTC&useSSL=false username: root password: chengwen connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50masterSlaveRule: name: ms_ds masterDataSourceName: master_ds slaveDataSourceNames: - slave_ds_0 - slave_ds_1
3 启动Sharding-Proxy服务
3.1 进入Sharding-Proxy的bin目录
chengwen@chengwen bin % ./start.sh Starting the Sharding-Proxy ...Please check the STDOUT file: /Users/chengwen/apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin/logs/stdout.logchengwen@MacBook-Pro bin %
3.2 出现3307端口并且ACTIVE表示启动成功
[INFO ] 12:28:06.822 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0xcedc789a] REGISTERED[INFO ] 12:28:06.823 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0xcedc789a] BIND: 0.0.0.0/0.0.0.0:3307[INFO ] 12:28:06.825 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0xcedc789a, L:/0.0.0.0:3307] ACTIVE
4 通过Navicat for MySQL 连接sharding-proxy 服务端
4.1 查看数据库
show DATABASES;
master_slave_dbsharding_db
4.1 在主数据库和从数据库中都创建表
USE master_slave_db;
create table if not exists demo_ds_master.t_order(order_id bigint not null,user_id int not null,status varchar(50),primary key(order_id));
create table if not exists demo_ds_slave_0.t_order(order_id bigint not null,user_id int not null,status varchar(50),primary key(order_id));
create table if not exists demo_ds_slave_1.t_order(order_id bigint not null,user_id int not null,status varchar(50),primary key(order_id));
show tables;
t_order
4.2 向表中添加数据(不指定数据库)
insert into t_order(order_id,user_id,status) values (11,1,'init');
默认向主表中添加数据

默认从库中查询数据,从库中没有查到,主库中可以查到,实现了读写分离。
4.3 分别向从库中添加数据
insert into demo_ds_slave_0.t_order(order_id,user_id,status) values (12,1,'init');
insert into demo_ds_slave_1.t_order(order_id,user_id,status) values (13,1,'init');
5 在不指定数据库时查询数据,会交替查询从库0 和从库1
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月09日 22时08分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
GDB调试基础使用方法
2019-03-06
HHKB 键盘布局记录以及一些闲言碎语
2019-03-06
【译】N 皇后问题 – 构造法原理与证明 时间复杂度O(1)
2019-03-06
docker基础:容器生命周期管理命令
2019-03-06
Shell脚本学习指南
2019-03-06
日志切分神器--logrotate
2019-03-06
C#3.0新增功能08 Lambda 表达式
2019-03-06
C#开发BIMFACE系列35 服务端API之模型对比6:获取模型构建对比分类树
2019-03-06
C# 规范建议
2019-03-06
.NET 5.0正式发布,新功能特性(翻译)
2019-03-06
重磅推出:AutoProject Studio 自动化项目生成器
2019-03-06
INotifyPropertyChanged 接口
2019-03-06
一些有趣的线段树玩法
2019-03-06
Go语言中的数组与数组切片
2019-03-06
操作系统启动过程
2019-03-06
进程管理
2019-03-06
物理层
2019-03-06
内建函数
2019-03-06