| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【瑞吉外卖】项目优化Day2 -> 正文阅读 |
|
[大数据]【瑞吉外卖】项目优化Day2 |
黑马程序员视频笔记 读写分离问题说明? Mysql主从复制
介绍MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台AysQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。 MySQL复制过程分成三步:
配置?配置-前置条件 提前准备好两台服务器,分别安装Mysql并启动服务成功
注:服务器ip自己定义,克隆出来的虚拟机需要修改uuid,操作如下 1.在从库登入mysql,查询uuid,复制查询出来的uuid,quit退出mysql select uuid(); 2.修改auto.cnf文件,保存 vi /var/lib/mysql/auto.cnf 3.重启mysql service mysqld restart 配置-主库Master 第一步:修改Mysql数据库的配置文件/etc/my.cnf
第二步:重启Mysql服务 systemctl restart mysqld 第三步:登录Mysql数据库,执行下面的SQL grant replication slave on *.* to 'xiaohong'@'%' identified by 'Root@123456'; 注:上面SQL的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。 注2:该sql在mysql8行不通,mysql8需要分开执行,先创建用户,再授权。 第四步:登录mysql数据库,执行下面SQL,记录下结果中File和Position的值 show master status; 注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作 配置-从库Slave 第一步:修改Mysql数据库的配置文件/etc/my.cnf
第二步:重启Mysql服务 systemctl restart mysqld 第三步:登录Mysql数据库,执行下面SQL change master to master_host='192.168.23.133',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000003',master_log_pos=43836,get_master_public_key=1;
注:之所以设置get_master_public_key=1,是因为开启主从复制的时候可能会报出下方的异常。原因是mysql8默认使用插件caching_sha2_password,有些client连接报这个错误,需要拿到server的public key来加密password start slave; 这里更改出错是因为我已经启动过该线程,它让我们关闭再尝试。正常第一次做是不会出现的。可以使用stop slave;来停止 第四步:登录Mysql数据库,执行下面SQL,查看从库的状态 show slave status\G; 注:如果没有\G会显示的特别乱 注: 如果从库uuid更改好了,并且启动了slave,那么这两个都会是Yes 测试用Navicat连接主从两个数据库 在主库新建数据库test,刷新从库,如果从库也出现了test数据库,说明主从复制是正常的,其他插入、更新、删除数据可以自己试一试。 读写分离案例背景面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。 Sharding-JDBC介绍Sharding-JDBC定位为轻量级java框架,在java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。
入门案例使用Sharding-JDBC实现读写分离步骤:
3、在配置文件中配置允许bean定义覆盖配置项
案例测试1.启动项目后,用测试工具发送一个get请求,查询 ? ?在控制台中能看到是从库执行的 2.发送一个post请求,存入数据 控制台中能看到是主库执行的?,数据库中也有数据,并且主从库同步 项目实现读写分离数据库环境准备(主从复制) 代码改造 使用Sharding-JDBC实现读写分离步骤:
NginxNginx概述 Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。 Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler .ru站点(俄文: Paw6nep)开发的,第一个公开版本0.1.e发布于2004年10月4日。 官网:?nginx news Nginx下载与安装 可以到Nginx官方网站下载Nginx的安装包,地址为:?nginx: download 安装过程: 2、下载Nginx安装包c'd需要先yum install wget) 如果linux内下载失败,可以在windows下载好通过sftp传到linux
3、解压tar -zxvf nginx-1.16.1.tar.gz 4、cd nginx-1.16.1 5、./configure --prefix=/usr/local/nginx 6、make && make install Nginx目录结构 安装完Nginx后,先熟悉一下Nginx的目录结构,如图: 查看树目录,先安装tree, 1、yum install tree 3、cd?/usr/local/nginx 2、tree
重点目录/文件:
Nginx命令 查看Nginx版本可以使用命令: ./nginx -v 检查配置文件正确性 启动和停止 在sbin目录下 启动Nginx服务使用如下命令:??
停止Nginx服务使用如下命令:??
启动完成后可以查看Nginx进程:??
可以从网页访问(需要关闭防火墙) 修改运行的进程数目: worker_processes 2; 重新加载配置文件: ./nginx -s reload or?/usr/local/nginx/sbin/nginx -s reload vim /etc/profile 追加在PATH=$JAVA_HOME/bin:$PATH里 PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH 使它生效 source /etc/profile Nginx配置文件结构 整体结构介绍 Nginx配置文件(conf/nginx.conf)整体分为三部分:
注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。 Nginx具体应用
部署静态资源
Nginx具体应用 ●正向代理 ●反向代理 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。 ?●配置反向代理
●负载均衡 早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群进行性能的水平扩展以及避免单点故障出现。 配置负载均衡
负载均衡策略:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 | -2025/5/1 10:12:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |