返回顶部
首页 > 资讯 > 数据库 >MySQL读写分离原理详细解析
  • 653
分享到

MySQL读写分离原理详细解析

MySQL读写分离原理MySQL读写分离 2022-07-14 12:07:28 653人浏览 独家记忆
摘要

目录一、读写分离的概念二、引入中间件MyCat三、MyCat服务端口和管理端口一、读写分离的概念 读写分离是基于主从复制来实现的。在实际的应用环境中,肯定是读操作多,就像我们在电商平台上去购买东西,可能看了100个也就买

一、读写分离的概念

读写分离是基于主从复制来实现的。在实际的应用环境中,肯定是读操作多,就像我们在电商平台上去购买东西,可能看了100个也就买了一两个。所以读操作永远比写这种更新操作多很多。所以我们基于主从复制的读写分离配置,就是让一个主库专门用来做数据的修改,写的时候专门在主库上写,主库通过主从复制把数据的更改通过binlog同步到从库上去,那么其他的客户端查询的请求都会最终映射到从库上去,而我们一个主库带上两三个从库,主库专门用来做数据的更新(写操作),从库专门用来做读操作这样一来可以很好的分摊读写的压力,不用全部都集中在主库上,对于后端服务的并发处理能力有很大的提高,另外就是它的高可用容灾,当主库挂了以后,可以把指定的从库变成主库。

MySQL读写分离原理详细解析

Mysql client通过mysql 提供的api,用mysql自定义的基于tcp的数据协议(简称mysql协议)与MySQL Server通信,访问MySQL Server数据库

如果只有一台服务器(单机环境),所有数据的增删改查都是在一台服务器上进行,随着我们的服务被越来越多的人使用,流量逐渐变大,需要并发能力逐渐提升,所以如果我们发现数据库性能到瓶颈了,我们可以做读写分离操作,提高后台服务。

述

图中的MySQL主服务器专门做写操作,下面连着2个MySQL从服务器专门做读操作,读请求转发到B、C,写请求转发到A。

如果我们在客户端上直接用代码写死,insert、update等写操作在A上做,show、select等读操作在B、C上做,相当于代码和主从环境就是强绑定的。这就导致代码的稳定性不太好,因为和环境强相关了,我们写代码得时候必须得知道哪个机器是负责写操作的主库,哪个机器是负责读操作的从库,由代码来选择。而这时如果有某个机器挂掉了,代码也不会知道,还是按照原来的方式转发请求,通信就会出现问题,所以把读写分离用代码实现肯定不合适。所以在实际的解决方案中,读写分离需要依赖数据库的中间件

二、引入中间件MyCat

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

MySQL读写分离原理详细解析

客户端实际上区分不出来连的是MyCat还是MySQL,因为通信都是遵守的是MySQL通信协议,之前怎么和MySQL通信,现在就怎么和MyCat通信,所以不用进行区分。

在MyCat上配置读写分离,我们在客户端上的代码不用做任何变更,代码上不需要区分哪个请求是读,哪个请求是写,代码直接访问的是MyCat,由MyCat解析请求,根据SQL的读写性质转发到负责相应操作的服务器,实现读写分离。

在MyCat上需要配置主服务器和从服务器的信息,有3种情况:一主一从、一主多从、多主多从

一主多从场景:当写库(master)挂了,MyCat还可以马上把一个从库(slave)直接变成一个写库(master),那相当于又回到一台机器的处理,因为从库和从库之间并没有主从复制的配置,所以我们还需要把变成写库的从库还要和其他从库之间配置一下主从复制。

多主多从:

MySQL读写分离原理详细解析

可以看到图中,MyCat服务器挂了两套环境,如果其中1套的主库宕机了(它对应的从库也就不能用了),此时MyCat会自动切到另一套环境,因为M1和M2之间也是配置成互为主从的,所以M2可以同步M1的数据,提供与M1环境完全相同的服务,所以它的高可用容灾能力是非常不错的。

三、MyCat服务端口和管理端口

MySQL的服务端口是3306,MyCat服务端口是8066(这个端口也是可以改的),也就是MySQL Client连接的是8066端口,登录8066端口看到的界面就和登录MySQL Server的3306端口一样。MyCat还有一个管理端口9066,登录这个管理端口可以查看MyCat正在工作的所有状态以及和后端服务器的连接,以及连接数据源的状态等。

到此这篇关于MySQL读写分离原理详细解析的文章就介绍到这了,更多相关MySQL读写分离 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL读写分离原理详细解析

本文链接: https://lsjlt.com/news/33356.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL读写分离原理详细解析
    目录一、读写分离的概念二、引入中间件MyCat三、MyCat服务端口和管理端口一、读写分离的概念 读写分离是基于主从复制来实现的。在实际的应用环境中,肯定是读操作多,就像我们在电商平台上去购买东西,可能看了100个也就买...
    99+
    2022-07-14
    MySQL读写分离原理 MySQL读写分离
  • mysql读写分离原理
    mysql 读写分离通过将读取和写入操作分离到不同的服务器组来提高性能和可用性,包括主服务器处理写入操作,从服务器处理读取操作,这可以减轻主服务器负载,提高写入性能,确保读取持续可用,增...
    99+
    2024-08-02
    mysql
  • MySQL读写分离原理是什么
    这篇文章主要讲解了“MySQL读写分离原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL读写分离原理是什么”吧!一、读写分离的概念读写分离是基于主从复制来实现的。在实际的应用...
    99+
    2023-07-02
  • mysql读写分离的原理是什么
    MySQL读写分离是指将数据库的读操作和写操作分开到不同的数据库服务器上,以达到提高数据库性能和可靠性的目的。其原理如下: 主从...
    99+
    2024-03-15
    mysql
  • MySQL主从复制与读写分离原理及用法详解
    本文实例讲述了MySQL主从复制与读写分离原理及用法。分享给大家供大家参考,具体如下: 主从复制 概念 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的...
    99+
    2024-04-02
  • PHP实现MySQL读写分离的详细步骤
    在当今的互联网应用开发中,数据访问速度和稳定性是至关重要的。为了提高数据库性能,许多开发者选择实现MySQL的读写分离。PHP作为一种流行的后端编程语言,能够与MySQL数据库进行高效...
    99+
    2024-03-04
    mysql php 分离 数据访问
  • MySQL读写分离基本原理是什么
    本篇内容主要讲解“MySQL读写分离基本原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL读写分离基本原理是什么”吧!一、读写分离工作原理在一些...
    99+
    2024-04-02
  • MySQL主从复制与读写分离的原理
    这篇文章主要为大家分享MySQL主从复制与读写分离的原理。文中还介绍了如何配置和验证主从复制与读写分离的实验,希望大家通过这篇文章能有所收获。MySQL主从复制与读写分离一、前言前面我们已经对MySQL数据...
    99+
    2024-04-02
  • 详解MySQL主从复制及读写分离
    目录前言一、相关概述二、读写分离三、MySQL主从复制实验部署四、MySQL读写分离实验前言 在企业实际应用中,成熟的业务通常数据量都比较大,而单台MySQL服务器在安全性、高可用性...
    99+
    2024-04-02
  • SpringBoot详解MySQL如何实现读写分离
    目录前言一、主从数据源的配置二、数据源路由的配置三、数据源上下文环境四、切换注解和Aop配置五、用法以及测试六、总结前言 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的...
    99+
    2024-04-02
  • MySQL-mycat读写分离
    Mycat 需要安装JDK 1.7 或者以上版本第一步:下载jdk-8u131-linux-x64.tar.gz文件 http://haixi.sfkcn.com:8080/201704/tools/jdk-linux-x64.tar.gz...
    99+
    2021-04-03
    MySQL-mycat读写分离 数据库入门 数据库基础教程 数据库 mysql
  • mysql+amoeba读写分离
    mysql+amoeba读写分离一 简介:Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数...
    99+
    2024-04-02
  • 怎么理解Mycat读写分离
    这篇文章主要介绍“怎么理解Mycat读写分离”,在日常操作中,相信很多人在怎么理解Mycat读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Mycat读写分离”...
    99+
    2024-04-02
  • MySQL中的主备、主从和读写分离的原理
    本篇内容介绍了“MySQL中的主备、主从和读写分离的原理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2024-04-02
  • mysql如何读写分离
    mysql 读写分离是一种数据库架构,将数据库分为主库和从库,主库负责写入操作,从库负责读操作,以降低主库负载和提高并发读能力。实现 mysql 读写分离需要:搭建主从复制环境、修改应用...
    99+
    2024-04-14
    mysql
  • Mysql主从复制与读写分离图文详解
    文章思维导图 为什么使用主从复制、读写分离 主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。 你想,假设是单机,读写都在一台MySQL上面完成,性...
    99+
    2024-04-02
  • 腾讯云TDSQL基本原理-读写分离
    当处理大数据量读请求的压力大、要求高时,可以通过读写分离功能将读的压力分布到各个从节点上。 TDSQL MySQL版 默认支持读写分离功能,架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载...
    99+
    2014-07-13
    腾讯云TDSQL基本原理-读写分离
  • 一文解析Redis读写分离技术
    导读 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量。这种架构读写请求都在master上完成...
    99+
    2024-04-02
  • 浅析php+mysql怎么实现读写分离
    MySQL作为目前最流行的数据库之一,在应用中大量被使用。在高并发和数据量较大的情况下,由于MySQL的读写并发性能不足,为了提高MySQL的并发性能,读写分离成为了必要的方案。读写分离的原理是将读操作和写操作分别放在不同的MySQL实例上...
    99+
    2023-05-14
    读写分离 php mysql
  • MySQL读写分离amoeba&mysql-proxy
    ----主从同步介绍 refencen    https://www.cnblogs.com/lin3615/p/5684891.html 1. 读写分离方式 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作