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

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 对外提供统一的数据访问入口。 

相关文章:

  • BERT、GPT-3与超越:NLP模型演进全解析
  • WebFuture:在银河麒麟系统中如何无中间件为WebFuture绑定域名、SSL证书
  • logits是啥、傅里叶变换
  • YOLOv4深度解析:从架构创新到工业落地的目标检测里程碑
  • C++23 新特性:允许 std::stack 与 std::queue 从迭代器对构造 (P1425R4)
  • open ai查看所有可用的模型列表
  • 【核心原理】MySQL存储结构详解 - 从数据库文件到行格式的完整解析
  • 信息收集深度利用(下)
  • PIO 的 OSR 与 ISR
  • spring cloud alibaba-Geteway详解
  • 如何通过小贝加速实现精准网络故障排查
  • (2025小白全踩坑版)【OpenHarmony】移植 3.1 版本系统到 STM32F407ZG开发板
  • 如何通过Radius协议实现堡垒机动态口令二次认证
  • Python----循环神经网络(Word2Vec)
  • 【音频】如何解析mp3文件
  • 【音频】wav文件如何解析编码格式(压缩格式)?
  • 【ULR #1】打击复读 (SAM, DAG链剖分)
  • 网感驱动下开源AI大模型AI智能名片S2B2C商城小程序源码的实践路径研究
  • I.MX6U Mini开发板测试GPIO
  • 使用计算机视觉实现目标分类和计数!!超详细入门教程
  • 东昌网站建设/域名交易
  • 股票app开发价格/站长工具 seo查询
  • 现在装宽带要多少钱/搜索引擎优化的英文缩写是什么
  • 百度网站验证怎么做/360网站推广官网