Sharding-JDBC分库分表使用实例

本文介绍了Sharding-JDBC的使用,包括在Spring Boot中集成Sharding-JDBC进行分库分表、读写分离和分布式治理。通过示例详细讲解了数据源配置、分库分表策略以及柔性事务的实现。
摘要由CSDN通过智能技术生成

Sharding-JDBC是当当开源的用于分库分表的基础类库。定位轻量级java框架,可以通过客户端直接连接数据库,只需要在增加额外的数据源配置就可以轻松实现完整的分库分表功能。

Sharding-JDBC是一个开源的适用于微服务的分布式数据访问基础类库,它始终以云原生的基础开发套件为目标。

目前Sharding-JDBC已经实现的功能包括(最新稳定版本为2.0.0.M1):

  • 分库分表
  • 读写分离
  • 分布式主键
  • 柔性事务
  • 分布式治理能力(2.0新功能),具体包括:
    • 配置集中化与动态化,可支持数据源、表与分片策略的动态切换
    • 客户端的数据库治理,数据源失效自动切换
    • 基于Open Tracing协议的APM信息输出

下面的例子都是基于Spring Boot开发:Spring Boot + Mybatis + Druid + Sharding-Jdbc

工程结构

工程结构

Application是项目的启动入口

DataSourceConfig是数据源配置,包括如何结合Sharding-Jdbc设置分库分表

algorithm下面是设置的分库分表策略,比如当city_id % 2为偶数放在库A,否则放在库B

UserMapper是Mybatis的接口,由于采用了全注解配置,所以没有Mapper文件

druid下面是druid的监控页面配置

pom配置


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-boot-learning-examples</artifactId>
        <groupId>com.rhwayfun</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>spring-boot-mybatis-sharding-jdbc</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            &l
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值