MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(三)

Sharding-Proxy 配置(读写分离)


1 、创建三个数据


2 、修改 conf 里面配置文件, config-master-slave.yaml

第一个主服务器,后面是从服务器


schemaName: master_slave_db
dataSources:
master_ds:
url: jdbc:mysql://127.0.0.1:3306/demo_ds_master?serverTimezone=UTC&useSSL=false
username: root
password: root
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: root
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: root
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
masterSlaveRule:
name: ms_ds
masterDataSourceName: master_ds
slaveDataSourceNames:
slave_ds_0
slave_ds_1


3 、启动 Sharding-Proxy 服务


4 、通过 cmd 连接 Sharding-Proxy ,进行创建表和添加记录操作


( 1 )在主数据库和从数据库里面,都创建数据库表


( 2 )向表添加记录,不指定向哪个库添加

把添加数据添加到主数据库里面(查询默认去查从库是查不到的)


( 3 )查询数据库表数据,不指定查询哪个库 (查询默认去查从库是查不到的随机去查从库的数据)


在springboot里操作sharding-proxy


pom

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.1</version>
    <scope>test</scope>
</dependency>


application.properties

spring.datasource.url=jdbc:mysql://localhost:3307/sharding_db
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root


position实体类

@Entity
@Table(name="position")
public class Position implements Serializable {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @Column(name = "name")
    private String name;
    @Column(name = "salary")
    private String salary;
    @Column(name = "city")
    private String city;
    //getter and setter ...
}


dao

public interface PositionRepository extends JpaRepository<Position,Long> {
}


启动类

@SpringBootApplication
public class RunBoot {
}


测试类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RunBoot.class)
public class TestPosition {
    @Resource
    private PositionRepository positionRepository;
    @Test
    public void test1(){
        List<Position> list = positionRepository.findAll();
        list.forEach(position -> System.out.println(position.getId()+" "+position.getName()+" "+position.getSalary()));
    }
    @Test
    public void test2(){
        Position position = new Position();
        position.setName("Tom");
        position.setSalary("20000");
        position.setCity("Shanghai");
        positionRepository.save(position);
    }
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 关系型数据库 MySQL
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
快速学习ShardingSphere-Sharding-Proxy(安装和分表配置)。
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
|
关系型数据库 MySQL Java
Sharding-Proxy的基本功能使用
Sharding-Proxy是一个分布式数据库中间件,定位为透明化的数据库代理端。作为开发人员可以完全把它当成数据库,而它具体的分片规则在Sharding-Proxy中配置。
2852 0
Sharding-Proxy的基本功能使用
|
关系型数据库 MySQL 数据库
MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(二)
MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(二)
99 0
MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(二)
|
关系型数据库 调度 数据库
直播预告 | PolarDB-PG 企业级特性 —— Shared Server特性详解
PolarDB-PG 提供了 Shared Server 内置连接池功能,实现了用户连接与后端进程的解绑。后端进程在运行时可以根据实时负载和进程污染情况进行动态转换。负载调度算法使用 Stall 机制弹性控制 Worker 数量,同时避免用户连接饿死。从根本上解决了高并发或者大量短连接带来的性能、稳定性问题。
|
存储 架构师 关系型数据库
MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(一)
MYSQLg高级-------分库分表之核心Sharding-Proxy 简介(一)
249 0
|
Java 数据库
MYSQLg高级-------分库分表之核心Sharding-JDBC(二)
MYSQLg高级-------分库分表之核心Sharding-JDBC(二)
101 0
|
算法 druid Java
MYSQLg高级-------分库分表之核心Sharding-JDBC(一)
MYSQLg高级-------分库分表之核心Sharding-JDBC(一)
190 0
|
存储 数据库
MYSQLg高级-------分库分表之核心Sharding-JDBC(三)
MYSQLg高级-------分库分表之核心Sharding-JDBC(三)
90 0
|
存储 Oracle 关系型数据库
MYSQLg高级-----分库分表是什么?(基本概念篇)
MYSQLg高级-----分库分表是什么?(基本概念篇)
95 0
|
SQL 监控 关系型数据库
MYSQLg高级------Sharding-JDBC 实现读写分离
MYSQLg高级------Sharding-JDBC 实现读写分离
177 0