广告
返回顶部
首页 > 资讯 > 数据库 >MyCat读写分离配置
  • 708
分享到

MyCat读写分离配置

2024-04-02 19:04:59 708人浏览 安东尼
摘要

    读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来

    读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来提升整体的查询效率。本文主要讲解MyCat如何进行读写分离的配置。

1. 环境搭建

        为了搭建读写分离数据库架构,这里我们需要准备两个数据库,一个作为主库,一个作为从库。本文所使用的方式是通过Docker搭建的主从架构,因而可以在本机上直接运行。具体配置如下:

角色主机名主机ip主机端口
主库Mysql-master127.0.0.13306
从库mysql-slave127.0.0.13307

        关于docker如何搭建Mysql主从数据库,读者朋友可以阅读本人的文章(Docker搭建MySQL主从集群)。读者朋友也可以通过虚拟机的方式搭建主从数据库,这里就不再赘述。

2. MyCat配置

        关于MyCat的配置,其主要是需要在某一个数据库节点上同时指定主库和从库。下面是一个示例:

<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="Http://io.mycat/">
  <schema name="mydb" checkSQLschema="true" sqlMaxLimit="100">
    <table name="t_user" primaryKey="id" autoIncrement="true" datanode="dn1"/>
  </schema>

  <dataNode name="dn1" dataHost="dhost1" database="db1"/>
  
  <dataHost name="dhost1" maxCon="1000" minCon="10" balance="1" writeType="0" 
            switchType="-1" dbType="mysql" dbDriver="native">
    <heartbeat>select user()</heartbeat>
    <writeHost host="hostM1" url="localhost:3306" user="root" passWord="root"/>
    <writeHost host="hostS1" url="localhost:3307" user="root" password="root"/>
  </dataHost></mycat:schema>

        关于上述配置,主要有如下几点需要说明:

  • xml的配置顺序schemadataNodedataHost的顺序不能发生变化;

  • dataHost中通过writeHost将主库和从库都配置进去,MyCat可以通过show master status来检测具体哪一个是主库,哪一个是从库;

  • dataHost上有两个参数:balanceswitchType

    • -1表示当master挂了的时候,主从不进行自动切换;

    • 1表示当master挂了的时候,主从进行自动切换;

    • 2表示当master挂了的时候,基于MySQL的主从复制状态来决定是否进行自动切换;郑州不孕不育医院性价比哪家好:http://yyk.39.net/zz3/zonghe/1d427.html

    • 3表示当master挂了的时候,基于MySQL galary cluster的模式进行自动切换。

    • 0表示不开启读写分离机制,所有的读写操作都发送到writeHost上;

    • 1表示开始读写分离机制,所有的读操作都会发送到slave和standby-master上,所谓的standby-master指的是当前master的备用master节点;

    • 2表示所有的读操作随机的在master和slave上分发;

    • 3表示所有的读操作都分发到slave上,而master和standby-master都不负担读操作;

    • 这里balance可以指定四个值,其各个值的含义如下:

    • 这里switchType也可以指定四个值,各个值的含义如下:https://www.jianshu.com/p/3b9c64fdcec9

  • 在进行读写分离的时候,如果master节点宕机,那么此时,slave节点还是可以正常提供读操作的,而对于客户端发送的写操作,将会抛出异常。

        上述配置是读写分离的第一种方式,还有一种配置方式,就是将slave节点写到master节点内部,从而表明从属关系。其配置方式如下:

<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/">
  <schema name="mydb" checkSQLschema="true" sqlMaxLimit="100">
    <table name="t_user" primaryKey="id" autoIncrement="true" dataNode="dn1"/>
  </schema>

  <dataNode name="dn1" dataHost="dhost1" database="db1"/>
  
  <dataHost name="dhost1" maxCon="1000" minCon="10" balance="1" writeType="0" 
            switchType="-1" dbType="mysql" dbDriver="native">
    <heartbeat>select user()</heartbeat>
    <writeHost host="hostM1" url="localhost:3306" user="root" password="root">
      <readHost host="hostS1" url="localhost:3307" user="root" password="root" weight="1"/>
    </writeHost>
  </dataHost></mycat:schema>

        对于这种配置方式,有相关的文章说,如果master宕机,那么这种方式配置的slave机器就无法提供读服务,但是根据笔者的测试,其还是可以正常提供读服务的,因而上述两种方式没有特别大的区别。

3. 小结

        本文主要讲解了MyCat主从模式搭建的两种方式,并且详细讲解了其配置方式中需要注意的点。


您可能感兴趣的文档:

--结束END--

本文标题: MyCat读写分离配置

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyCat读写分离配置
        读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来...
    99+
    2022-10-18
  • Mycat读写分离配置实践
       工作这些年来,也去了一些地方,有了一些见闻,隐隐感觉很多文化和猫有着千丝万缕的联系。就拿IT行业来说吧,猫有着很高的曝光率,比如大名鼎鼎的 tomcat,是由SUN的软件构架...
    99+
    2022-10-18
  • mycat-3:读写分离
    利用mycat读写分离主库192.168.56.101,备库192.168.56.25.3个数据库db1,db2,db3.主从同步见之前数据库目录。 修改schema.xml balance="0"0:不开启读写分离机制,所有读操作都发送到...
    99+
    2023-01-31
    mycat
  • 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
  • Mycat学习实战-Mycat读写分离
    详情:http://blog.csdn.net/ygqygq2/article/details/78438017 ...
    99+
    2022-10-18
  • Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表
    部署 mycat mycat基于java运行,检查java版本 [root@node119 ~]# java -version openjdk version "1.8.0_171" OpenJDK Run...
    99+
    2022-10-18
  • mysql+mycat实现读写分离
    centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13 ...
    99+
    2022-10-18
  • mycat做Mysql的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • mycat读写分离方案一
    1.什么是MYCAT 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、...
    99+
    2021-06-08
    mycat读写分离方案一
  • mycat基础实验之主从配置读写分离和分表
    mycat实验之主从配置读写分离和分表1.实验环境:vmware虚机3个   (虚机太少了,电脑有点吃力,3个虚机只能达到基本的测试)系统centos7    &nb...
    99+
    2022-10-18
  • 怎么理解Mycat读写分离
    这篇文章主要介绍“怎么理解Mycat读写分离”,在日常操作中,相信很多人在怎么理解Mycat读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Mycat读写分离”...
    99+
    2022-10-18
  • MyCAT实现MySQL的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • MyCat教程四:实现读写分离
    本文我们来给大家介绍下通过MyCat来实现MySQL的读写分离操作   MyCat读写分离   一、读写分离配置   前面我们已经介绍过了mysql的主从同步和mycat的安装及相关配置文件的介绍,现在我们来配置下具体的读写分...
    99+
    2020-12-19
    MyCat教程四:实现读写分离
  • MyCat中怎么实现读写分离
    这期内容当中小编将会给大家带来有关MyCat中怎么实现读写分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、mycat实现读写分离这里没有用到mysql03主机,读写...
    99+
    2022-10-18
  • MySQL/MariaDB读写分离配置
    实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mysql-proxy这个中间件来实现数据库的读写分离; 使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理...
    99+
    2021-01-12
    MySQL/MariaDB读写分离配置
  • SQL Server Alwayson读写分离配置
    概述  Alwayson相对于数据库镜像最大的优势就是可读副本,带来可读副本的同时还添加了一个新的功能就是配置只读路由实现读写分离;当然这里的读写分离稍微夸张了一点,只能称之为半读写分离...
    99+
    2022-10-18
  • Mycat简单实现读写分离与分库分表
    Mycat数据库读写分离 环境: 客户端1.13 ↓ mycat中间件1.11 ↙ ...
    99+
    2022-10-18
  • 使用Mycat怎么实现MySQL读写分离
    今天就跟大家聊聊有关使用Mycat怎么实现MySQL读写分离,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。搭建环境操作系统:CentOS-6.5-x...
    99+
    2022-10-18
  • Mycat如何实现Mysql集群读写分离
    这篇文章给大家分享的是有关Mycat如何实现Mysql集群读写分离的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 读写分离的概述MySQL 作为目前世界上使用最广泛的免...
    99+
    2022-10-19
  • Mycat中间件实现Mysql主从读写分离
    环境规划: IP地址 主机名 角色 备注 10.4.132.50 k8s01 mycat,master 10.4.132.42 k8s02 slave ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作