shardingsphere初体验-shardingsphere-jdbc

15 篇文章 0 订阅
9 篇文章 1 订阅

shardingsphere初体验-shardingsphere-jdbc

下载源码

第一步,先把代码down下来https://github.com/apache/shardingsphere
下载的时候如果没有修改配置的话,会提示文件名太长
这个时候需要修改git的配置

git config --global core.longpaths true

下载完,我们选择最新发布是5.0.0-beta分支

编译代码

在项目根目录执行下面的命令

mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

执行过程可能会报错,找不到某个模块的依赖
解决方法很简单,缺少什么模块,就先单独install这个模块,然后继续执行上面的命令,例如:
在这里插入图片描述

示例代码

shardingsphere有一个example模块,选中目录右键添加为maven项目,然后在这个目录下执行

mvn clean install

执行完效果如下,说明我们的示例代码编译好了
在这里插入图片描述

启动数据库

启动mysql

然后执行官方提供的数据库初始化脚本:examples/src/resources/manual_schema.sql

修改配置

因为我设置的mysql没有密码,所以不需要修改配置,如果你的mysql设置了密码,这里修改密码即可,文件路径如下:examples/shardingsphere-jdbc-example/sharding-example/sharding-raw-jdbc-example/src/main/resources/META-INF/sharding-databases-range.yaml

dataSources:
  ds_0:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.jdbc.Driver
    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password:
  ds_1:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.jdbc.Driver
    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password:

执行示例代码

运行examples/shardingsphere-jdbc-example/sharding-example/sharding-raw-jdbc-example/src/main/java/org/apache/shardingsphere/example/sharding/raw/jdbc/YamlRangeConfigurationExampleMain.java

输出日志如下:

Connected to the target VM, address: '127.0.0.1:59782', transport: 'socket'
[INFO ] 2021-08-24 00:07:22,547 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Starting... 
[INFO ] 2021-08-24 00:07:23,037 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Start completed. 
[INFO ] 2021-08-24 00:07:23,067 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Starting... 
[INFO ] 2021-08-24 00:07:23,077 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Start completed. 
-------------- Process Success Begin ---------------
---------------------------- Insert Data ----------------------------
---------------------------- Print Order Data -----------------------
order_id: 636717375777386496, user_id: 1, address_id: 1, status: INSERT_TEST
order_id: 636717376700133376, user_id: 2, address_id: 2, status: INSERT_TEST
order_id: 636717377287335936, user_id: 3, address_id: 3, status: INSERT_TEST
order_id: 636717377874538496, user_id: 4, address_id: 4, status: INSERT_TEST
order_id: 636717379048943616, user_id: 5, address_id: 5, status: INSERT_TEST
order_id: 636717379640340480, user_id: 6, address_id: 6, status: INSERT_TEST
order_id: 636717380223348736, user_id: 7, address_id: 7, status: INSERT_TEST
order_id: 636717380856688640, user_id: 8, address_id: 8, status: INSERT_TEST
order_id: 636717381481639936, user_id: 9, address_id: 9, status: INSERT_TEST
order_id: 636717382114979840, user_id: 10, address_id: 10, status: INSERT_TEST
---------------------------- Print OrderItem Data -------------------
order_item_id:636717376238759937, order_id: 636717375777386496, user_id: 1, status: INSERT_TEST
order_item_id:636717376993734657, order_id: 636717376700133376, user_id: 2, status: INSERT_TEST
order_item_id:636717377580937217, order_id: 636717377287335936, user_id: 3, status: INSERT_TEST
order_item_id:636717378755342337, order_id: 636717377874538496, user_id: 4, status: INSERT_TEST
order_item_id:636717379342544897, order_id: 636717379048943616, user_id: 5, status: INSERT_TEST
order_item_id:636717379887804417, order_id: 636717379640340480, user_id: 6, status: INSERT_TEST
order_item_id:636717380516950017, order_id: 636717380223348736, user_id: 7, status: INSERT_TEST
order_item_id:636717381146095617, order_id: 636717380856688640, user_id: 8, status: INSERT_TEST
order_item_id:636717381775241217, order_id: 636717381481639936, user_id: 9, status: INSERT_TEST
order_item_id:636717382366638081, order_id: 636717382114979840, user_id: 10, status: INSERT_TEST
---------------------------- Delete Data ----------------------------
---------------------------- Print Order Data -----------------------
---------------------------- Print OrderItem Data -------------------
-------------- Process Success Finish --------------
Disconnected from the target VM, address: '127.0.0.1:59782', transport: 'socket'

Process finished with exit code 0

我们可以代码里打断点,然后看数据库里的数据,发现如我们配置的分表规则,数据分别插入了两个数据库里
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

读写分离

查看examples/shardingsphere-jdbc-example/sharding-example/sharding-raw-jdbc-example/src/main/resources/META-INF/readwrite-splitting.yaml的配置

修改YamlRangeConfigurationExampleMain主类里加载的配置文件
运行报错:提读库里表不存在
在这里插入图片描述
手动在demo_read_ds_0和demo_read_ds_1数据库执行建表语句后,运行YamlRangeConfigurationExampleMain结果如下:

Connected to the target VM, address: '127.0.0.1:52414', transport: 'socket'
[INFO ] 2021-08-24 00:44:15,196 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Starting... 
[INFO ] 2021-08-24 00:44:15,841 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Start completed. 
[INFO ] 2021-08-24 00:44:15,898 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Starting... 
[INFO ] 2021-08-24 00:44:15,938 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Start completed. 
[INFO ] 2021-08-24 00:44:15,939 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-3 - Starting... 
[INFO ] 2021-08-24 00:44:15,955 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-3 - Start completed. 
-------------- Process Success Begin ---------------
---------------------------- Insert Data ----------------------------
---------------------------- Print Order Data -----------------------
---------------------------- Print OrderItem Data -------------------
---------------------------- Delete Data ----------------------------
---------------------------- Print Order Data -----------------------
---------------------------- Print OrderItem Data -------------------
-------------- Process Success Finish --------------
Disconnected from the target VM, address: '127.0.0.1:52414', transport: 'socket'

Process finished with exit code 0

查询没查到数据,是因为读的读库,数据全部写入主库了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值