Sharding-JDBC:实现数据库的读写分离?
简介
轻量级Java框架,在Java的JDBC层提供额外服务,以jar包的形式提供服务(增强版数据库连接驱动)。
适用于基于JDBC的ORM框架、支持第三方数据库连接池、支持实现了JDBC规范的数据库。
读写分离:基于已配置好主从复制的多个数据库。
使用步骤
在springboot项目中使用。
一、导入依赖
<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.1.1</version> </dependency>
二、配置信息application.yml
配置运行bean定义覆盖,保证sharding-jdbc生成的datasource对象与其它框架不发生冲突。
配置多个数据源,指定主库、从库,指定从库的负载策略。
spring:
main:
#允许bean定义覆盖,后生成的bean会覆盖之前生成的bean
allow-bean-definition-overriding: true
shardingsphere:
datasource:
# 配置数据源名称
names:
master,slave
# 数据源配置(主)
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.169.12.134:3306/db_test?characterEncoding=utf-8
username: ****
password: ****
# 数据源配置(从)
slave:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.11.123:3306/db_test?characterEncoding=utf-8
username: ****
password: ****
masterslave:
# 从库负载均衡策略,轮询
load-balance-algorithm-type: round_robin
# 数据源名称
name: dataSource
# 指定主库数据源
master-data-source-name: master
# 指定从库数据源,多个逗号分隔
slave-data-source-names: slave
props:
# 开启SQL显示,默认false
sql:
show: true
结果
项目中增删改操作会操作指定的主库,查询操作会操作指定的从库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!