最新版的,SpringBoot整合Sharding-Jdbc实现读写分离

news2025/1/11 23:46:56

Sharding-Jdbc实现读写分离

Hello,兄弟们好,我是Feri,最近整理了最新的基于Seata-Server2.0实现分布式事务的demo,希望对你有所帮助,有任何问题,可以随时沟通交流,在成为技术大牛的路上,我们一路前行!

之前的一篇文章,实现了Mysql的主从复制,那么本篇就接着上次搭建Mysql的主从复制,咱们使用Sharding-Jdbc实现一下读写分离,来提升Mysql访问的瓶颈,来,手把手带你飞!
之前搭建的4台Mysql服务器

基于Sharding-Jdbc实现Mysql集群下的读写分离操作步骤:
1.准备数据库和表

-- 在主库 创建数据库,在从库观察 是否会同步
create database db_test01;
create table db_test01.t_msg(
id int primary key auto_increment,
title varchar(20),
info varchar(100),
ctime datetime
);

1.创建SpringBoot项目并依赖jar

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.22</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.1.1</version>
        </dependency>

    </dependencies>

2.实现t_msg表的CRUD操作
在这里插入图片描述3.在application.yaml实现配置

spring:
  shardingsphere:
    props:
      sql: #打印代理的sql语句
        show: true
    datasource: #配置对应的数据源
      names: dbmaster,dbslaver1,dbslaver2,dbslaver3
      dbmaster:
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3310/db_test01
        username: root
        password: 123456
      dbslaver1:
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3312/db_test01
        username: root
        password: 123456
      dbslaver2:
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3313/db_test01
        username: root
        password: 123456
      dbslaver3:
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3314/db_test01
        username: root
        password: 123456
    masterslave: #主从复制的配置,配置读写分离
      name: ms
      master-data-source-name: dbmaster #设置主库,写库
      slave-data-source-names: dbslaver1,dbslaver2,dbslaver3 #设置从库,读库
      load-balance-algorithm-type: round_robin #设置从库的负载均衡策略,支持2种:1.轮询 2.随机 random

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


4.运行测试
测试新增接口和查询接口,观察后台运行日志在这里插入图片描述在这里插入图片描述

这样就可以啦,希望对你能有所帮助哈,少走弯路,就关注我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

校园点餐系统

1 项目介绍 1.1 摘要 在这个被海量信息淹没的数字化时代&#xff0c;互联网技术以惊人的速度迭代&#xff0c;信息的触角无处不在&#xff0c;社会的脉动随之加速。每一天&#xff0c;我们都被汹涌而至的数据浪潮包裹&#xff0c;生活在一个全方位的数字信息矩阵中。互联网的…

vue3解析markdown文件为html并且高亮显示代码块

前言&#xff1a; 很多时候我们程序员写的文档都是以markdown为主&#xff0c;但是我们每次找相关资料极为不便&#xff0c;如果能直接把markdown文档引进vue项目里&#xff0c;解析成html并且展示出来&#xff0c;然后部署在服务器上&#xff0c;查看是不是极为方便呢。&…

3D打印随形透气钢:模具困气终结者

困气是模具经常遇到的问题&#xff0c;是制约生产效率与产品质量的关键因素之一。传统透气钢材料虽有所助益&#xff0c;但其在加工复杂度、形状适应性及性能均衡性上的局限性明显。在此背景下&#xff0c;3D打印技术的革新性应用——随形透气钢应运而生&#xff0c;为困气、排…

view 和 reshape的区别 及 测试对一个数据执行view 和 reshape之后得到的数据还一样吗

一、测试对一个数据执行view 和 reshape之后得到的数据还一样吗 问题&#xff1a; x torch.randn(2, 3, 4) y_view x.view(12&#xff0c; 2) y_reshape y_view.reshape(2&#xff0c;3, 4)得到的结果一样吗 import torch# 创建一个张量 x torch.randn(2, 3, 4)# 使用 …

Datawhale夏令营AI for Science(AI+气象)学习笔记1

如何针对降水预测问题搭建模型 回顾baseline, 我们可以大致将搭建模型并解决问题分为以下几个步骤: 定义数据集, 建立起训练数据和标签之间的关系&#xff1b;定义数据加载器(DataLoader)&#xff0c; 方便取数据进行训练 定义模型, 利用PyTorch搭建网络&#xff0c;根据输入…

关于DynamoRIO处理多线程程序时候的问题

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

【天机学堂】面试总结

写在前面&#xff0c;首先要将天机学堂包装一下&#xff0c;智慧教育平台》&#xff0c;暂时就想到这个。天机学堂文档 1.包装简历 待更新。。。

持续集成09--Jenkins配置Sonar代码漏洞扫描工具

专栏内容 持续集成01--Git版本管理及基础应用实践_持续集成下的git分支-CSDN博客 持续集成02--Linux环境更新/安装Java新版本-CSDN博客 持续集成03--Jenkins的安装与配置-CSDN博客 持续集成04--Jenkins结合Gitee创建项目_jenkins集成gitee-CSDN博客 持续集成05--Gogs的安装与使…

Ubuntu运行深度学习代码,代码随机epoch中断没有任何报错

深度学习运行代码直接中断 文章目录 深度学习运行代码直接中断问题描述设备信息问题补充解决思路问题发现及正确解决思路新问题出现最终问题&#xff1a;ubuntu系统&#xff0c;4090显卡安装英伟达驱动535.x外的驱动会导致开机无法进入桌面问题记录 问题描述 运行深度学习代码…

MySQL--表完整性约束

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 作用&#xff1a;用于保证数据的完整性和一致性 约束条件说明PRIMARY KEY (PK)该字段为该表的主键&#xff0c;可以唯一的标识记录&#xff0c;不可以…

【Python 逆向滑块】(实战三)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.01 使用工具&#xff1a;Node.js 本章知识&#xff1a;逆向网易易盾【cb】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理…

乐鑫ESP32-S3语音唤醒和命令词识别,XIAO ESP32 S3 Sense开发套件应用

在这个数字化飞速发展的时代&#xff0c;小型化、智能化已成为技术发展的趋势。ESP32-S3芯片在物联网和嵌入式机器学习领域的应用潜力&#xff0c;让我们对智能设备的未来充满了无限遐想。 OpenGlass项目中的Seeed Studio XIAO ESP32 S3 Sense开发套件&#xff0c;以其小巧的体…

【kali靶机之serial】--反序列化漏洞实操

kali靶机配置 【我图片里没有截图的默认配置即可】需要改的地方图片里面都有。 使用kali扫描网关的主机。 扫到一个开放了80端口HTTP协议的主机ip 访问80端口 会看到一个文本页面&#xff0c;翻译一下看是什么意思。。 F12查看cookie&#xff0c;是一个base64编码了的东西 使…

再获奖项,亚信安慧AntDB数据库被评为“2023-2024国产数据库创新赋能优秀产品”

日前&#xff0c;由工业和信息化部直属的中国电子信息产业发展研究院赛迪网、《数字经济》杂志主办的第二届数字驱动创新峰会&#xff08;DDIS 2024&#xff09;在京隆重举办&#xff0c;“2023-2024数字创新优秀成果案例” 征集结果同期正式发布。亚信安慧AntDB数据库凭借多年…

「9月·张家口」第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。MVIPIT 2024聚焦机器视觉、图像处理与影像技术&#xff0c;旨在为专家、学者和研究人员提供一个国际平台&#xff0c;分享研究成果&#xff0c;讨论问题和挑战&#xff0c;探…

ARM架构中的Cache stashing介绍

快速链接: . 👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 付费专栏-付费课程 【购买须知】:个人博客笔记导读目录(全部) Reliability, Availability, and I/O coherent Requesting Node (RN-I)I/O coherent Requesting Node with DVM support (RN-D)Fully c…

【C#工具类】Excel接口(一)

目录 需求描述 具体需求分析 学习交流&#xff08;Bug待解决&#xff09; Debug代码&#xff08;写代码的过程&#xff0c;逐渐完善的过程&#xff09; 参考资料 扩展阅读 需求描述 用C#生成两个函数 1. 盲读Excel (Excel文件名) 读取所有单元格的数据&#xff0c;并输…

什么是IO多路复用?其原理和用途是什么?

什么是IO&#xff1f; IO&#xff1a;Input/Output&#xff0c;即数据的读取&#xff08;接收&#xff09;/写入&#xff08;发送&#xff09;操作&#xff0c;针对不同的数据存储媒介&#xff0c;大致可以分为网络 IO 和磁盘 IO 两种。在 Linux 系统中&#xff0c;为了保证系…

计算机毕业设计Hadoop+Hive专利分析可视化 面向专利的大数据管理系统 专利爬虫 专利数据分析 大数据毕业设计 Spark

《Hadoop专利大数据分析可视化系统》开题报告 一、选题背景与意义 随着信息技术的飞速发展&#xff0c;全球数据量呈现爆炸式增长&#xff0c;特别是在专利领域&#xff0c;数据的积累和更新速度更是惊人。专利数据不仅包含了技术创新的详细信息&#xff0c;还反映了行业的发…