项目优化-

前言

用户浏览菜品,添加购物车,下单等操作最终都会反映成一个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.hqwc.cn/news/487216.html

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

相关文章

【多线程】多线程带来的的风险-线程安全 (重点)

这里写自定义目录标题 1 观察线程不安全2 线程安全的概念3 线程不安全的原因线程调度是随机的修改共享数据原⼦性可⻅性Java 内存模型 (JMM)指令重排序 4 解决之前的线程不安全问题 1 观察线程不安全 public class ThreadDemo {// 此处定义⼀个 int 类型的变量private static …

人工智能驱动的风险管理如何支持网络安全

人工智能 (AI)自 20 世纪 50 年代中期以来就已经出现&#xff0c;但由于 ChatGPT 等易于使用的应用程序以及生成式 AI的可用性不断提高&#xff0c;现在它经常出现在头条新闻中。 使用 Signal 监控进行的分析发现&#xff0c;根据 Signal 搜索的文章&#xff0c;人工智能在 20…

【Python笔记-设计模式】外观模式

一、说明 外观模式是一种结构型设计模式&#xff0c;能为程序库、框架或其他复杂类提供一个统一的接口。 (一) 解决问题 简化复杂系统的接口调用 (二) 使用场景 简化复杂系统&#xff1a;需要一个指向复杂子系统的直接接口&#xff0c; 且该接口的功能有限时重构复杂的代码…

128 Linux 系统编程6 ,C++程序在linux 上的调试,GDB调试

今天来整理 GDB 调试。 在windows 上我们使用vs2017开发&#xff0c;可以手动的加断点&#xff0c;debug。 那么在linux上怎么加断点&#xff0c;debug呢&#xff1f;这就是今天要整理的GDB调试工具了。 那么有些同学可能会想到&#xff1a;我们在windows上开发&#xff0c;…

Python 在Word中创建表格并填入数据、图片

在Word中&#xff0c;表格是一个强大的工具&#xff0c;它可以帮助你更好地组织、呈现和分析信息。本文将介绍如何使用Python在Word中创建表格并填入数据、图片&#xff0c;以及设置表格样式等。 Python Word库&#xff1a; 要使用Python在Word中创建或操作表格&#xff0c;需…

【更新】ARCGIS之成片区开发方案报备坐标txt格式批量导出工具(定制开发版)

序言 之前开发的成片区开发方案报备格式是按湖北省的标准定制的&#xff0c;目前&#xff0c;自然资源部又有了新的格式要求&#xff0c;现在新增国标版的成片区开发方案报备格式导出。 之前版本软件详见&#xff1a;软件介绍 一、软件简介 本软件是基于arcgis二次开发的工具&…

蜂窝物联网咖WiFi认证解决方案

项目背景 随着目前网咖模式越来越流行&#xff0c;给网吧部署一套无缝漫游的WIFI网络势在必行。同时&#xff0c;网吧无线准入的验证码在客户机上面进行更新&#xff0c;以防周边的人员进行蹭网&#xff0c;损失网吧的外网带宽。 01 需求分析 1. 网吧服务区域全部覆盖无盲区…

分享一个我爱工具网源码优化版

应用介绍 本文来自&#xff1a;分享一个我爱工具网源码优化版 - 源码1688 前几天在网上看到了一个不错的工具网源码&#xff0c;但是源码存在一些问题&#xff0c;遂进行了修改优化。 主要修改内容有&#xff1a; 1、后台改为账号密码登录&#xff0c;上传即用&#xff0c;不…

如何将建筑白模叠加到三维地球上?

​ 通过以下方法可以将建筑白模叠加到三维地球上。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe&#xff0c;安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“建筑白模”菜单&…

云图极速版限时免费活动

产品介绍 云图极速版是针对拥有攻击面管理需求的用户打造的 SaaS 应用&#xff0c;致力于协助用户发现并管理互联网资产攻击面。 实战数据 (2023.11.6 - 2024.2.23) 云图极速版上线 3 个月以来&#xff0c;接入用户 3,563 家&#xff0c;扫描主体 19,961 个&#xff0c;累计发…

【Python笔记-设计模式】装饰器模式

一、说明 装饰器模式是一种结构型设计模式&#xff0c;旨在动态的给一个对象添加额外的职责。 (一) 解决问题 不改变原有对象结构的情况下&#xff0c;动态地给对象添加新的功能或职责&#xff0c;实现透明地对对象进行功能的扩展。 (二) 使用场景 如果用继承来扩展对象行…

linux服务器tomcat日志中文出现问号乱码

目录 一、场景二、排查三、原因四、解决 一、场景 tomcat日志的中文出现问号乱码 乱码示例 ??[377995738417729536]????????? ac??????????????message:二、排查 1、使用locale命令查看服务器当前使用的语言包 发现只用的语言包为utf-8&#xff0…