MySQL——读写分离

简介

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。

中间件

mysql-router

参考:https://www.cnblogs.com/f-ck-need-u/p/9276639.html 

MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy。

既然MySQL Router是一个数据库的中间件,那么MySQL Router必须能够分析来自前面客户端的SQL请求是写请求还是读请求,以便决定这个SQL请求是发送给master还是slave,以及发送给哪个master、哪个slave。这样,MySQL Router就实现了MySQL的读写分离,对MySQL请求进行了负载均衡。

因此,MySQL Router的前提是后端实现了MySQL的主从复制。

MySQL Router很轻量级,只能通过不同的端口来实现简单的读/写分离,且读请求的调度算法只能使用默认的rr(round-robin),更多一点、更复杂一点的能力都不具备。所以,在实现MySQL Router时,需要自行配置好后端MySQL的高可用。高可用建议通过Percona XtraDB Cluster或MariaDB Galera或MySQL官方的group replication实现,如果实在没有选择,还可以通过MHA实现。

所以,一个简单的MySQL Router部署图如下。

读写分离的控制问题
    主要是用户权限的控制,有写权限的用户走读的通道也可以写
    前提是在后端的MySQL数据库服务器里创建读和写分开的用户
    读的用户尽量使用读操作的端口
    读写分离的关键点:其实是用户的权限,让不同的用户连接不同的端口,最后任然要到后端的mysql服务器里去验证是否有读写的权限
                mysqlrouter只是做了读写的分流,让应用程序去连接不同的端口--》mysqlrouter只是一个分流的工具
                主要是用户权限的控制,有写权限的用户走读的通道也可以写,读的用户走写的通道只能读

mycat2

Mycat是开源社区在阿里Cobar基础上进行二次开发的数据库中间件,也是目前最流行的基于java语言编写的数据库中间件;是一个开源的分布式数据库系统,是一个实现了MySQL协议的的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问(SQLyog、navicate),而其后端可以用MySQL原生(Native)协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。配合数据库的主从模式还可实现读写分离

Mycat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。

在工作方式上,Mycat会部署成一个MySQL服务,程序员只需要像操作普通的单机MySQL服务一样去操作mycat,mycat再去完成分库分表功能,而后端的数据库产品,建议还是使用MySQL

为什么要用mycat2?

  1. 高访问量高并发对数据库的压力
  2. 读写请求数据不一致

功能

1.读写分离

2.分库分表

3.多数据源整合

原理

mycat的原理中最重要的一个动词就是拦截,它拦截了用户发送过来的SQL语句,首先按对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端真实数据库,并将返回的结果做适当的处理,最终在返回给用户。

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

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

相关文章

自动打包机如何精准捆扎

打包机按照自动化程度大致可以分为半自动、自动和全自动三种,全自动大家都很熟悉,可以自动检测、自动输送、自动捆扎,而且捆扎位置先对比较精准,但半自动和自动打包机没有配置光电检测,因此捆扎位置总是不够固定&#…

RHCA之路---EX280(8)

RHCA之路—EX280(8) 1. 题目 On master.lab.example.com using the template file in http://materials.example.com/exam280/gogs as a basis, install an application in the ditto project according to the following requirements: All of the registry entries must poi…

青大数据机构【2013】

关键字: 邻接表空间复杂度、求无向图连通分量(BFS、DFS)、B树根节点最小关键字、平均查找长度最小的排序、二叉树排序叶子结点次序不变、不同次序建立二叉排序树及中序遍历、直接插入排序特点、强连通分量、邻接矩阵邻接表 一、单选&#x…

八股文学习二(spring boot + mybatis)

三. 架构 1. spring boot Spring Boot是一个依靠大量注解实现自动化配置的全新框架。约定优于配置;独立运行的 Spring 项目,内嵌servlet容器;Spring Boot 框架内部已经实现了与Spring以及其他常用第三方库的整合连接,并提供了默…

石化行业应力应变监测系统的应用-基于PreMaint设备健康管理平台

在石化行业,管道安全一直是一个备受关注的话题。输气管道在高风险地区的安全运行一直备受关注,特别是在地质灾害频发的山地、沿线地形复杂、易受自然灾害影响的区域。为了保障管道的可靠运行并降低地质灾害带来的风险,石化企业引入了应力应变…

vue手写提示组件弹窗

1、弹框展示 2、message组件 新建一个message.vue <template><div class"wrapper" v-if"isShow" :class"showContent ? fadein : fadeout">{{ text }}</div> </template> <script></script> <style s…

如何把视频格式转换成mp4?支持的格式种类非常多。

如何把视频格式转换成mp4&#xff1f;随着计算机技术的迅猛发展&#xff0c;我们现在有着各种各样的视频格式可供选择&#xff0c;平时我们都知道的mp4、flv、mov、mkv、avi、wmv等&#xff0c;都是视频格式的种类。其中&#xff0c;MP4是一种具有极佳兼容性的视频格式&#xf…

Linux——Shell脚本编程(1)

一、为什么要学习 Shell 编程 &#xff1f; 1)Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 2)对于 JavaEE 和 Python 程序员来说&#xff0c;工作的需要&#xff0c;要求你编写一些 Shell脚本进行程序或者是服务器的维护&#xff…

vue 分页器组件+css动画效果

全网都找了一遍没有找到符合UI需求的分页动画&#xff0c;于是就主动上手了 需求&#xff1a; 1、分页最多显示9页&#xff0c;总页数最多显示无上限&#xff1b; 2、点击下一页的时候需要有动画效果过度&#xff0c;如果当前页数是当前显示最后的一页&#xff0c;则停了当前…

Spring MVC:请求转发与请求重定向

Spring MVC 请求转发请求重定向附 请求转发 转发&#xff08; forward &#xff09;&#xff0c;指服务器接收请求后&#xff0c;从一个资源跳转到另一个资源中。请求转发是一次请求&#xff0c;不会改变浏览器的请求地址。 简单示例&#xff1a; 1.通过 String 类型的返回值…

MySQL高可用九种方案

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 参考视频[2] MMM 方案&#xff08;单主&#xff09; MySQL 高可用方案之 MMM&#xff08;Multi-Master Replication Manager&#x…

【PowerQuery】Excel 一分钟以内刷新PowerQuery数据

当需要进行刷新的周期如果小于一分钟,采用数据自动刷新就无法实现自动刷新的目标。那就没有办法了吗?当然不是,这里就是使用VBA来实现自动刷新。这里实现VBA刷新的第一步就是将当前的Excel 保存为带有宏的Excel 文件,如果不带宏则无法运行带有宏代码的Excel文件,保存过程如…