9、ShardingSphere 之 Sharding-Proxy 读写分离
生活随笔
收集整理的這篇文章主要介紹了
9、ShardingSphere 之 Sharding-Proxy 读写分离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 創建三個數據庫
- 2 修改conf目錄的conf-master-slave.yaml
- 3 啟動Sharding-Proxy服務
- 3.1 進入Sharding-Proxy的bin目錄
- 3.2 出現3307端口并且ACTIVE表示啟動成功
- 4 通過Navicat for MySQL 連接sharding-proxy 服務端
- 4.1 查看數據庫
- 4.1 在主數據庫和從數據庫中都創建表
- 4.2 向表中添加數據(不指定數據庫)
- 4.3 分別向從庫中添加數據
- 5 在不指定數據庫時查詢數據,會交替查詢從庫0 和從庫1
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=falseusername: rootpassword: chengwenconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50slave_ds_0:url: jdbc:mysql://127.0.0.1:3306/demo_ds_slave_0?serverTimezone=UTC&useSSL=falseusername: rootpassword: chengwenconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50slave_ds_1:url: jdbc:mysql://127.0.0.1:3306/demo_ds_slave_1?serverTimezone=UTC&useSSL=falseusername: rootpassword: chengwenconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50masterSlaveRule:name: ms_dsmasterDataSourceName: master_dsslaveDataSourceNames:- slave_ds_0- slave_ds_13 啟動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.log chengwen@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] ACTIVE4 通過Navicat for MySQL 連接sharding-proxy 服務端
4.1 查看數據庫
show DATABASES; master_slave_db sharding_db4.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_order4.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
總結
以上是生活随笔為你收集整理的9、ShardingSphere 之 Sharding-Proxy 读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8、ShardingSphere 之 S
- 下一篇: 1 项目立项管理