项目优化-

前言

用户浏览菜品,添加购物车,下单等操作最终都会反映成一个sql,操作数据库。

但是当前系统只部署了一台数据库,读和写所有压力都由一台数据库承担,压力大;如果数据库服务器磁盘损坏则数据丢失,单点故障。我们要从这两个方面来优化项目。

一、Mysql主从复制

1.介绍 

 2.配置

提前准备好两台服务器,分别安装Mysql并启动服务成功。我用windows上的mysql作为主库,linux上的mysql作为从库。

(1)配置Windows主库

①修改Mysql的配置文件

找到 my.ini文件

在[mysqld]下面增加配置:

[mysqld]
log-bin=mysql-bin  #启用二进制日志
server-id=100       #服务器唯一ID(唯一即可)

②重启mysql服务

③创建用于同步的用户账号(用于master与slave通信)

登录mysql数据库

mysql -uroot -p

执行语句创建用户授权

CREATE USER 'xiaohei'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'xiaohei'@'%';
FLUSH PRIVILEGES;

 

④查看主库状态,记录二进制文件名和位置

show master status;

二进制文件为 LAPTOP-2PQ440VH-bin.000118,位置为2726。

之后这里不要有任何操作,否则文件和文章会变。

(2)配置linux从库

①修改mysql的/etc/my.cnf文件


 

②重启mysql

 

③登录mysql数据库,执行下面的sql

change master to master_host='192.168.2.81',master_user='xiaohei',master_password='123456',master_log_file='LAPTOP-2PQ440VH-bin.000118',master_log_pos=2726;start slave;

 ④查看从库的状态

show slave status;

 复制下来看看

两个都为yes说明成功。

在Navicat中测试一下,也是成功的。

二、读写分离案例

 1.SHarding-JDBC介绍

2.入门案例

 

        <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1</version></dependency>
spring:shardingsphere:datasource:names:master,slave# 主数据源master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/rw?characterEncoding=utf-8username: rootpassword: 123456# 从数据源slave:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.19.129:3306/rw?characterEncoding=utf-8username: rootpassword: 123456masterslave:# 读写分离配置load-balance-algorithm-type: round_robin #轮询# 最终的数据源名称name: dataSource# 主库数据源名称master-data-source-name: master# 从库数据源名称列表,多个逗号分隔slave-data-source-names: slaveprops:sql:show: true #开启SQL显示,默认falsemain:
#   引入的SpringBoot、DruidDataSource这两个框架里的配置类都要创建数据源这个对象,现在默认值为false,不允许覆盖,导致创建的bean是冲突的,我们来设为true,允许后创建的datasource覆盖前面的。allow-bean-definition-overriding: true

 主从复制的环境前面已经搭建好了,接下来在主库中创建我们原来的业务数据库并导入相关表结构和数据。导入依赖、配置文件即可了。

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

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

相关文章

【这个词(Sequence-to-Sequence)在深度学习中怎么解释,有什么作用?】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;深度学习笔记 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Sequence-to-Sequence&#xff08;Seq2Seq&#xff09; Sequence-to-Sequence&#xff08;Seq2Seq…

【论文阅读】ICCV 2023 计算和数据高效后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.主要图表4.结论 一.论文信息 论文题目&#xff1a; Computation and Data Efficient Backdoor Attacks&#xff08;计算和数据高效后门攻击&#xff09; 论文来源&#xff1a; 2023-ICCV&#xff08;CCF-A&#xff09; 论文团…

免费的个人电脑防火墙软件 Windows

除了Windows自带的防火墙功能外&#xff0c;下面几个老牌的个人防火墙 ZoneAlarm Free Firewall&#xff1a;ZoneAlarm Free Firewall 是一款功能强大且易于使用的防火墙软件&#xff0c;提供实时保护、应用程序控制和高级防火墙功能。 Comodo Firewall&#xff1a;Comodo Fir…

【DDD】学习笔记-薪资管理系统的测试驱动开发

回顾薪资管理系统的设计建模 在 3-15 课&#xff0c;我们通过场景驱动设计完成了薪资管理系统的领域设计建模。既然场景驱动设计可以很好地与测试驱动开发融合在一起&#xff0c;因此根据场景驱动设计的成果来开展测试驱动开发&#xff0c;就是一个水到渠成的过程。让我们先来…

List集合之UML、特点、遍历方式、迭代器原理、泛型、装拆箱及ArrayList、LinkedList和Vector的区别

目录 ​编辑 一、什么是UML 二、集合框架 三、List集合 1.特点 2.遍历方式 3.删除 4.优化 四、迭代器原理 五、泛型 六、装拆箱 七、ArrayList、LinkedList和Vector的区别 ArrayList和Vector的区别 LinkedList和Vector的区别 一、什么是UML UML&#xff08;Unif…

springboot2.x集成Mybatis-Plus、druid、TDengine

1、将mybatis-plus升级到3.5以上&#xff1a; <!-- 支持tdengine&#xff0c;mybatis-plus需要升级到3.5.3 --><dependency><groupId>com.taosdata.jdbc</groupId><artifactId>taos-jdbcdriver</artifactId><version>3.2.8</vers…

前端项目打包体积分析与优化

一、安装依赖分析工具 npm install webpack-bundle-analyz 二、修改webpack.config.js文件 1、导入上面下载的包 2、在plugins里创建实例 三、启动打包命令 npm run build 会弹出如下界面&#xff1a; 四、优化 1、通过CDN导入react-dom文件 修改webpack.config.js文件里…

24-2-23

练习题 P1480 A/B Problem # A/B Problem ## 题目描述 输入两个整数 $a,b$&#xff0c;输出它们的商。 ## 输入格式 两行&#xff0c;第一行是被除数&#xff0c;第二行是除数。 ## 输出格式 一行&#xff0c;商的整数部分。 ## 样例 #1 ### 样例输入 #1 10 2 ### …

【Python_PySide6学习笔记(三十四)】组合选择框QComboBox类的基本用法

组合选择框QComboBox类的基本用法 组合选择框QComboBox类的基本用法前言正文1、创建组合选择框2、组合选择框添加多个选项3、组合选择框清空选项4、组合选择框添加单个选项5、组合选择框清除选项6、组合选择框获取当前选项文本7、组合选择框获取当前选项索引8、组合选择框信号:…

Windows 远程控制 Mac 电脑怎么操作

要从 Windows 远程控制 Mac 电脑&#xff0c;您可以使用内置 macOS 功能或第三方软件解决方案。以下是一些方法&#xff1a; 一、使用内置 macOS 功能&#xff08;屏幕共享&#xff09; 1、在 macOS 上启用屏幕共享 转至系统偏好设置 > 共享&#xff1b;选中“屏幕共享”…

八、线性代数二 ,矩阵的秩

目录 1、矩阵子式的定义与子式个数的计算&#xff1a; 2、矩阵秩的定义&#xff1a; 3、矩阵秩的计算方法&#xff1a; 4、矩阵秩的 性质&#xff1a; 线性代数四——几个重要的矩阵点积_线性代数 矩阵点积-CSDN博客 1、矩阵子式的定义与子式个数的计算&#xff1a; 概念&…

C# OpenCvSharp 利用白平衡技术进行图像修复

目录 效果 灰度世界(GrayworldWB)-白平衡算法 完美反射(SimpleWB)-白平衡算法 基于学习的(LearningBasedWB)-白平衡算法 代码 下载 C# OpenCvSharp 利用白平衡技术进行图像修复 OpenCV xphoto模块中提供了三种不同的白平衡算法&#xff0c;分别是&#xff1a;灰度世界(G…

华清远见嵌入式学习——驱动开发——day9

目录 作业要求&#xff1a; 作业答案&#xff1a; 代码效果&#xff1a; ​编辑 Platform总线驱动代码&#xff1a; 应用程序代码&#xff1a; 设备树配置&#xff1a; 作业要求&#xff1a; 通过platform总线驱动框架编写LED灯的驱动&#xff0c;编写应用程序测试&…

危险!Wyze 摄像头安全漏洞致1.3万用户隐私遭窥探

最近&#xff0c;一则关于 Wyze 摄像头再次出现安全漏洞的新闻引起了人们的广泛关注。据报道&#xff0c;该安全漏洞导致约1.3万用户的摄像头受到了未经授权的访问&#xff0c;使得这些用户的隐私信息遭到了窥视。这一事件再次引发了人们对网络安全的关注和讨论。 网络安全不仅…

代码随想录算法训练营第36天| Leetcode 435. 无重叠区间、763.划分字母区间、56. 合并区间

文章目录 Leetcode 435. 无重叠区间Leetcode 763.划分字母区间Leetcode 56. 合并区间 Leetcode 435. 无重叠区间 题目链接&#xff1a; Leetcode 435. 无重叠区间 题目描述&#xff1a; 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回需…

啊丢的刷题记录手册

1.洛谷题P1923 求第k小的数 题目描述 输入 n&#xff08;1≤n<5000000 且 n 为奇数&#xff09;个数字ai​&#xff08;1≤ai​<109&#xff09;&#xff0c;输出这些数字的第 k 小的数。最小的数是第 0 小。 请尽量不要使用 nth_element 来写本题&#xff0c;因为本题…

module ‘json‘ has no attribute ‘dumps‘

如果在使用Python的json模块时遇到AttributeError: module json has no attribute dumps错误&#xff0c;通常是因为在Python环境中json模块不支持dumps方法。这种情况可能是因为Python的json模块被重命名或修改过导致的。 解决方法可以尝试以下几种&#xff1a; 1.检查Pytho…

基于DPU和HADOS-RACE加速Spark 3.x

背景简介 Apache Spark&#xff08;下文简称Spark&#xff09;是一种开源集群计算引擎&#xff0c;支持批/流计算、SQL分析、机器学习、图计算等计算范式&#xff0c;以其强大的容错能力、可扩展性、函数式API、多语言支持&#xff08;SQL、Python、Java、Scala、R&#xff09…

springsecurity+vue前后端分离适配cas认证的跨域问题

0. cas服务搭建参考:CAS 5.3服务器搭建_cas-overlay-CSDN博客 1. 参照springsecurity适配cas的方式, 一直失败, 无奈关闭springssecurity认证 2. 后端服务适配cas: 参考前后端分离项目(springbootvue)接入单点登录cas_前后端分离做cas单点登录-CSDN博客 1) 引入maven依赖 …

鸿蒙LiteOS-M 内核初始化

目录 一、LiteOS-M 初始化内核二、LOS_KernelInit代码分析三、LOS_Start代码解析坚持就有收获 一、LiteOS-M 初始化内核 在LiteOS-M应用程序中&#xff0c;系统初始化如下&#xff1a; /*** brief This is the ohos entry, and you could call this in your main funciton af…