Sharding-JDBC 分库分表实战 springboot+sharding-jdbc+jpa+druid

本文介绍了一个使用SpringBoot、Sharding-JDBC、JPA和Druid实现分库分表的实战案例。随着用户数量增长至500万并预期达到2000万,为解决用户表查询效率问题,选择了ShardingSphere作为分布式数据库中间件。采用分库单表策略,设置6个数据库。详细步骤包括引入依赖、实体配置、分片规则设定、以及利用UUID作为分片字段实现分库分表功能。
摘要由CSDN通过智能技术生成
  • 前言

系统采用mysql数据库,技术框架采用基于springboot的springcloud,持久层采用jpa,数据库连接池阿里druid

随着最近系统用户量增加到500万,等各系统用户过来后会超过2000万,这个时候随着用户表数据量的增加,

用户表查询效率 低下。这个时候未雨绸缪,开始准备分库分表的准备,采用分布式数据库中间件,选择了sharding spshare,

这篇文章主要是用到了sharding-jdbc进行分库分表,我们用户人数预计最高2000万,我们采用的是分库单表方案,即6个库,一个单表

  • 分库分表

1我选用的是基于springboot的配置规则,本文省略druid的配置

首先需要引入依赖

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<sharding-sphere.version>4.0.0-RC1</sharding-sphere.version>
	</properties>

	<dependencies>
		<!-- sharding-jdbc 基于springboot配置规则-->
		<dependency>
			<groupId>org.apache.shardingsphere</groupId>
			<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
			<version>${sharding-sphere.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shardingsphere</groupId>
			<artifactId>sharding-jdbc-spring-namespace</artifactId>
			<version>${sharding-sphere.version}</version>
		</dependency>

		<!-- sharding-jdbc 基于springboot配置规则-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<!-- mysql驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.47</version>
		</dependency>
		<!-- alibaba druid-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.16</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.47</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值