IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 148-MySQL(读写分离原理) -> 正文阅读

[系统运维]148-MySQL(读写分离原理)

读写分离

  • 基于主从复制的读写分离,是我们在单机环境下,数据库的性能到瓶颈了,我们进行读写分离,提高后台服务,存储这一块的增删改查的并发的处理能力
  • 有一个库专门写操作,从库专门读取操作,主库的数据更改通过主从复制同步到从库。

读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。(读操作特别多,而且耗时特别大 )

在这里插入图片描述

  • 我们把图中的客户端看作:代码 ,作为mysql client的角色,通过mysql 提供的API,用mysql自定义的基于TCP的数据协议,简称mysql协议。我们的一些数据就存在mysql数据库,服务通过操作mysql的API和mysql数据库 进行 通信。双方的数据交互遵守mysql协议。

  • 最初,我们只有一台MySQL服务器,所有数据的增删改查都是在一台机器上进行,随着服务越来越多的人使用,流量越来越大,需要并发能力的不断提升,如果数据库的性能到瓶颈了,我们就要进行读写分离的操作。读操作如果特别多,耗时特别大。


图中的MySQL主服务端专门做写操作。
下面连着2个mysql服务器专门做读操作。
1主2从。
在A机器上写,在B, C机器上读
在这里插入图片描述
如果我们在客户端上 直接用代码写死,insert update之类的操作,在A上做,show,select操作在B,C上做,相当于代码和主从环境就是强绑定的状态,代码的稳定性不太好,因为和环境强相关了,必须得知道哪个机器是写操作的主库,哪个机器是读操作的从库,由代码来选择, 比如说哪个机器挂掉了也不知道,没人帮忙动态监测。
所以,用代码 肯定是不合适。

所以实际上,读写分离,分库分表都是需要依赖数据库中间件—》mycat
mycat就是代理服务器的角色。

也是遵循mysql通信协议的。
在这里插入图片描述
配置读写分离,我们在客户端上的代码不用做任何变更,代码上不需要区分哪个是读,哪个是写,代码直接访问的是mycat

作为客户端来说,实际上区分不出来连的是mycat还是MySQL,因为通信都是遵守的是mysql通信协议。所以不用进行区分。
在这里插入图片描述
客户端通过mysql的API发送的所有的增删改查请求都是到mycat,在mycat配置读写分离。
mycat对客户端的请求进行解析,如果是写操作,就把这个操作发到主服务器上,如果发现是读操作,就把这个操作发到从服务器上。(读写分离)

主库上的数据通过主从复制同步到从库。
主从复制是在mysql数据库上配置的。

在mycat上就是要配置主服务器和从服务器的信息。

有3种情况:
在这里插入图片描述
我们配置的是1主多从。

  • 写库挂了,配置上还可以立马把一个从库直接变身成一个写库。然后从库和从库还要配置一下主从复制。

多主多从,就是mycat后面挂 了2套环境(1主2从 为1套)。
在这里插入图片描述
在这里插入图片描述
M1和S1,S2之间要配置主从复制;
M2和S3,S4之间也要配置主从复制;

M1和M2之间也配置成互为主从。(主服务器之间也开启了主从复制)

  • 如果其中1套的主库挂了(它对应的从库也就不能用了),此时mycat会自动切到另一套环境。 因为M1和M2之间之前也是配置成互为主从的。

高可用 容灾能力强

  • MySQL(3306端口)

  • mycat有两个比较重要的端口:数据端口8066,管理端口9066

  • 归功于mycat (数据端口(登录上来和登录mysql一样,看到的是库表):8066(相当于客户端现在连的是8066端口(之前练得是3306),这个端口是可以改的)

  • 管理端口 登录这个管理端口可以查看mycat正在工作的所有状态以及和后端服务器的连接,以及连接数据源的状态 9066

目前较为常见的MySQL读写分离方式有:

  • 程序代码内部实现
  • 引入中间代理层
  • MySQL_proxy
  • Mycat
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 12:01:58  更:2022-05-05 12:02:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:58:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码