当前位置: 首页 > web >正文

Java读写分离实战

一、目标:

读操作走从库,写操作走主库 —— 实现读写分离

二、实现步骤:

本文是基于基于 ShardingSphere 读写分离,通过修改配置文件形式实现读写分离。

1. 修改 spring.shardingsphere.datasource 配置,加上主从库定义

spring:shardingsphere:datasource:names: master,slavemaster:# 你的原 community 配置放这里slave:# 你的原 nonmotor 配置放这里rules:readwrite-splitting:data-sources:community:  # 逻辑数据源名(不要与物理重名)static-strategy:write-data-source-name: masterread-data-source-names: slaveload-balancer-name: round_robin

三、结构简介:

两个物理数据源(数据库连接)——masterslave

  • master: 主库(负责写操作)

  • slave: 从库(负责读操作)

读写分离规则配置 :

 rules:
      readwrite-splitting:
        data-sources:
          community:  # 逻辑数据源名(业务代码中访问的名称)

逻辑数据源community,它是一个抽象名称,对应一套“读写分离”的规则组合。你在业务代码中注入的是这个名字(不是 masterslave)。

静态读写分离策略:

            static-strategy:
              write-data-source-name: master
              read-data-source-names: slave

  • 所有 写请求(INSERT/UPDATE/DELETE) 都路由到 master 数据源。

  • 所有 读请求(SELECT) 都路由到 slave 数据源。

 负载均衡器配置:

            load-balancer-name: round_robin
        load-balancers:
          round_robin:
            type: ROUND_ROBIN

  • 多个 slave 节点,可以通过 ROUND_ROBIN(轮询)方式在多个从库之间分发读取请求。

  • 当前虽然你只定义了一个 slave,但这个配置是为了后续扩展预留的。

在 Spring Boot 项目中配置 ShardingSphere 实现数据库读写分离 —— 所有写操作走主库 master,所有读操作走从库 slave,并通过逻辑数据源 community 对外提供统一的数据访问入口。 

http://www.xdnf.cn/news/8045.html

相关文章:

  • Java SpringBoot 项目中 Redis 存储 Session 具体实现步骤
  • Java阻塞队列(BlockingQueue)的使用:ArrayBlockingQueue类、LinkedBlockingQueue类
  • JVM参数详解与实战案例指南(AI)
  • BurpSuite学习安装
  • MobaXterm 解除只能保存14个session会话限制
  • 篇章十 消息持久化(二)
  • 加密软件对企业安全的帮助
  • 水浒后传-暹罗国建立新国家的故事
  • 影刀Fun叉鸟-2048
  • 【强化学习】PPO如何根据奖励模型调整模型参数
  • 使用 OpenCV 实现哈哈镜效果
  • Python-阶跃函数与激活函数
  • 项目中常用的docker指令
  • 免下载苹果IPA文件重签名工具:快速更换应用名称和BID(Bundle Identifier)的详细教程
  • 【GESP真题解析】第 20 集 GESP 一级 2025 年 3 月编程题 1:图书馆的老鼠
  • 提升搜索效率:深入了解Amazon Kendra的强大功能
  • 内核调试高手养成实战 · Day 2:i.MX8MP 实战调试 Vivante GPU 驱动
  • Spring AI 1.0 GA 正式发布
  • 信号量机制:操作系统中的同步与互斥利器
  • openlayer:11点击地图上省份实现overlay提示省份名称并修改对应所点省份区域颜色
  • c++11的auto关键一篇文章打通:基本用法、常见使用场景、最佳食用指南
  • 小刚说C语言刷题—1153 - 查找“支撑数”
  • Docker面试题(1)
  • MinIO纠删码技术解析:数据冗余与高可用的存储密码
  • 命令行关闭特定端口 命令行关闭端口脚本
  • f-string 高效的字符串格式化
  • 【MySQL成神之路】MySQL查询用法总结
  • CASAIM与荣耀达成合作,三维数字化检测技术助力终端消费电子制造实现生产工艺智能优化
  • 医疗行业数据共享新实践:如何用QuickAPI打通诊疗全流程数据壁垒
  • 免费图片处理工具压缩不糊 + 批量加水印兼容多种格式转换