问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

springboot读写分离?

发布网友 发布时间:2024-09-26 00:32

我来回答

1个回答

热心网友 时间:2024-10-05 14:36

SpringBoot项目中实现MySQL读写分离

但我们仔细观察我们会发现,当我们的项目都是用的单体数据库时,那么就可能会存在如下问题:

为了解决上述提到的两个问题,我们可以准备两(多)台MySQL,一台主(Master)服务器,一台从(Slave)服务器,主库的数据变更(写、更新、删除这些操作),需要同步到从库中(主从复制)。而用户在访问我们项目时,如果是写操作(insert、update、delete),则直接操作主库;如果是读操作(select),则直接操作从库,这种结构就是读写分离啦。

在这种读写分离的结构中,从库是可以有多个的

MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一闹纯台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。

二进制日志(BINLOG)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制,就是通过该binlog实现的。默认MySQL是未开启该日志的。

在环境搭建之前,我们需要准备好两台服务器,如果生活富镇祥裕使用的是两台云服务器的时候记得要开放安全组,即防火墙;如果是比狗子我生活好点但也是用的虚拟机的话,记得别分这么多内存启动蓝屏了(别问怎么知道的)

这里就不给大家展示数据库的安装和防火墙的操作了,这个我感觉网上好多资源都能够满足遇到的问题,在搭建主从库的时候有在网上见到过说MySQL版本要液旅咐一致的,我也没太留意直接就在之前的MySQL上操作了,大家可以自己去验证一下。

服务器:192.168.150.100(别试了黑不了的,这是虚拟机的ip)

这里有三个方法都能重启MySQL,最简单的无疑就是一关一开:

登录进去MySQL之后才能够执行下面的命令,因为这是SQL命令,Linux不认识这玩意是啥。

这个时候还不用退出MySQL,因为下面的命令还是SQL命令,执行下面的SQL,可以拿到我们后面需要的两个重要参数。

执行完这一句SQL之后,==不要再操作主库!不要再操作主库!不要再操作主库!==重要的事情说三遍,因为再操作主库之后可能会导致红框中的两个属性值会发生变化,后面如果发生了错误可能就和这里有那么两毛钱关系了。

服务器:192.168.150.101(别试了黑不了的,这也是虚拟机的ip)

这里要注意server-id和主库以及其他从库都不能相同,否则后面将会配置不成功。

这里有三个方法都能重启MySQL,最简单的无疑就是一关一开:

登录进去MySQL之后才能够执行下面的命令,因为这是SQL命令

参数说明:

这个时候还不用退出MySQL,因为下面的命令还是SQL命令,执行下面的SQL,可以看到从库的状态信息。通过状态信息中的Slave_IO_running和Slave_SQL_running可以看出主从同步是否就绪,如果这两个参数全为Yes,表示主从同步已经配置完成。

这可能是由于linux是复制出来的,MySQL中还有一个server_uuid是一样的,我们也需要修改。vim/var/lib/mysql/auto.cnf

这应该就是各位大牛设置server_id的时候不小心设置相同的id了,修改过来就行,步骤在上面的配置中。

这是狗子在操作过程中搞出来的一个错误……

出错的原因是在主库中删除了用户信息,但是在从库中同步的时候失败导致同步停止,下面记录自己的操作(是在进入MySQL的操作且是从库)。

在数据库中操作时,一定要注意当前所在的数据库是哪个,作为一个良好的实践:在SQL语句前加USEdbname。

Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。

使用Sharding-JDBC可以在程序中轻松的实现数据库读写分离。

Sharding-JDBC具有以下几个特点:

下面我们将用ShardingJDBC在项目中实现MySQL的读写分离。

在pom.xml文件中导入ShardingJDBC的依赖坐标

在application.yml中增加数据源的配置

这时我们就可以对我们项目中的配置进行一个测试,下面分别调用一个更新接口和一个查询接口,通过查看日志中记录的数据源来判断是否能够按照我们预料中的跑。

搞定!!!程序正常按照我们预期的成功跑起来了,成功借助ShardingJDBC在我们项目中实现了数据库的读写分离。

【sharding-jdbc】springboot集成sharding-jdbc完成一主多从读写分离

说明

sharding-jdbc的官方文档在我看册备让来是比较绕的,尤其是配置文件,看着相当头大,滚盯仔细看绝对是看得懂的。上面配置一主州局两从的情况,此框架支持一主,这点是需要注意的。而且框架不复制主从数据的同步。

SpringBoot整合MybatisPius实现数据库多数据源及读写分离

其他主从方式配置模板

@DS可以注解在方法上和类上扒早,同时存在方法注解优先于类上注解。

强烈建议只注解在service实现上。

某些springBoot的版本上面埋罩可能无法排除(尝试使用以下方式排春液雀除)

解决springboot整合redis-cluster下集群拓扑不自动刷新问题

一个redis-cluster的铅梁三主三从,在其中一个master节点挂了之后,springboot的相关集群配置信息手激空没有及时刷新。

底层客户端使毕瞎用lettuce,经过查找,lettuce默认是没有开始拓扑更新及读写分离。安排上

参考文章:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...玩网页游戏当输入完用户名,密码 点登入时 网页会自动关闭,就是点下... 一看电影网页游戏就掉线 771天津到无锡在那个火车站上车 天津1469次火车到无锡哪个火车站?求解 天津西到无锡东的G211途经哪些站? k5268次列车途经站点 java.applet描述 小动物之星禁止跳舞成就怎么完成 小动物之星如何解锁禁止跳舞 小动物之星蕉驴不焦虑成就怎么做 小动物之星蕉驴不焦虑成就完成方 小动物之星农场奇遇的完成方法 jdbc直连多条修改如何一条错误全部都错不执行呢 【JAVA】俗称的桥连和直连到底哪个是JDBC,哪个是ODBC?为什么会这样称呼... 再有人问你什么是分库分表,直接把这篇文章发给他 王者荣耀冠军信物怎么兑换奖励 手机王者荣耀app如何兑换战队总决赛信物 王者荣耀兑换战队总决赛信物... 梦见严禹豪很讨厌我骂我的预兆 梦见自己把朋友臭骂了一通 尾巴再生的动物有哪些各自有什么特点 冰点还原如何卸载 关于冰点还原怎么卸载 梦见捡柴火是什么意思? 地下城堡战力ss 地下城堡2酒馆招募评分-地下城堡2酒馆快速招募 阿玛尼寄情香水的真假怎么分辨? 阿玛尼寄情男士香水的真假怎么鉴别? 葡萄籽的作用与功效 葡萄籽给人带来什么好处 红檩木有酸味吗?昨天在文玩市场挑了一块红檀木现场做了一个手串2•0... 有了解哪个品牌的实木家具是红檀木材质的吗?听说这种材质和红酸枝差不多... 每次和前女友聊天她都会说一句我们是朋友,这里面代表着什么 ...什么才是朋友,很多见过一面,就说我们是朋友,那朋友,何为朋友... 2020恐怖片盘点,50部电影刷到跨年 巴尔干边界女主扮演者 入门级单反相机3000以下的尼康D3200套机(18-55mm)和佳能1200D套机... ...价格在3000以内,请问入佳能1200d好还是尼康d3200好? ...有两部小说是同一个作者写的,上部是父亲的,下部是写他儿子的... 梦见从高楼掉落 为什么我不能登录2个倩女幽魂2?登录第2个说有 游戏渲染失败,另一个游... 我的手机为什么显示sd卡不可用或为未安装sd卡?客服建议送修!送修二次... 我朋友输了很多钱现在老婆也跟他离婚了班也不上天天就玩牌乐门麻将, 我的男朋友赌输了钱,我应该怎么办? 老公最近输了不少钱我天天骂他。可我发现这样他更反感,反而不怎么理... 美短加白多少钱一只 怎么看品相 ...什么品种 大概的价位 在那可以买到?就是样的 不要类似的 猫咪_百度... 美短标斑好还是加白好 英区留子请注意:申请文书改革了! ...语音屡次停止运行",怎么解决,大佬求解,急急急。。。 死刑犯也有会见近亲属的权利! 南京女大学生案二审维持死刑,被告人会立刻死吗? 机油参数表示什么意思 机油的参数是什么意思