SpringBoot+JPA整合ShardingShpere实现分表-读写分离

ShardingShpere 分表分库+读写分离

​ ShardingShpere 提供来了根据某个字段分库分表的功能和读写分离。

读写分离

当主服务有写入(insert/update/delete)语句时,从服务器自动获取。

  • 写入线程从 master 数据库查询
  • 查询线程从 salve 数据库获取数据

ShardingShpere 源码

版本依赖
  • JDK 8
  • SpringBoot 2.4.3
  • ShardingShpere 5.0

创建两个数据库 master0、master1,每个库包含三张表 user_0、user_1、user_2。

CREATE DATABASE `master0` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `master1` CHARACTER SET utf8 COLLATE utf8_general_ci;
use master0;
DROP TABLE IF EXISTS user_0;
CREATE TABLE `user_0` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS user_1;
CREATE TABLE `user_1` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS user_2;
CREATE TABLE `user_2` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;

添加 application.yml

spring:
  jpa:
    properties:
      hibernate:
        hbm2ddl:
          auto: update
        dialect: org.hibernate.dialect.MySQL5Dialect
        show_sql: false
  shardingsphere:
    datasource:
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值