zoukankan      html  css  js  c++  java
  • 利用mycat实现mysql数据库读写分离

    1、这里是在mysql主从复制实现的基础上,利用mycat做读写分离,架构图如下:

    2、Demo

    2.1 在mysql master上创建数据库创建db1

    2.2 在数据库db1创建表student

    同时,因为配置好了mysql主从复制,在mysql slave上也有一样数据库和表

    2.3 编辑 mycat的配置文件server.xml

         <!--表示mycat的登录用户名-->
    <user name="test">
    <!--表示mycat的登录密码--> <property name="password">test</property>
             <!--表示mycat的逻辑数据库名称,可以自定义--> <property name="schemas">TESTDB</property> </user> <user name="user"> <property name="password">user</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user>

    2.4编辑mycat的配置文件schema.xml

    <!--TESTDB表示mycat的逻辑数据库名称
    当schema节点没有子节点table的时候,一定要有dataNode属性存在(指向mysql真实数据库),
    -->
    <
    schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema> <!--指定master的数据库db1--> <dataNode name="dn1" dataHost="192.168.0.4" database="db1" /> <!--指定mastet的ip --> <dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <!--表示mysql的心跳状态--> <heartbeat>select user()</heartbeat> <!-- master负责写 --> <writeHost host="hostM1" url="192.168.0.4:3306" user="root" password="admin"> <!--slave负责读--> <readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" /> </writeHost> </dataHost>

    到这里,利用mycat做读写分离就已经配置完了

    注意 dataHost节点的下面三个属性

      balance, switchType, writeType

    balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。

    balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。

    balance="2",所有读操作都随机的在writeHost、readhost上分发。

    balance="3",所有读请求随机的分发到writeHost下的readhost执行,writeHost不负担读压力

    writeType表示写模式

    writeType="0",所有的操作发送到配置的第一个writehost

    writeType="1",随机发送到配置的所有writehost

    writeType="2",不执行写操作

    switchType指的是切换的模式,目前的取值也有4种:

    switchType=‘-1‘ 表示不自动切换

    switchType=‘1‘ 默认值,表示自动切换

    switchType=‘2‘ 基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status

    switchType=‘3‘基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为show status like ‘wsrep%‘。

  • 相关阅读:
    PAT甲级——1110 Complete Binary Tree (完全二叉树)
    PAT甲级——1111 Online Map (单源最短路经的Dijkstra算法、priority_queue的使用)
    PAT甲级——1112 Stucked Keyboard (字符串+stl)
    PAT甲级——1114 Family Property (并查集)
    PAT甲级——1118 Birds in Forest (并查集)
    Pre- and Post-order Traversals(先序+后序序列,建立二叉树)
    PAT甲级——1123 Is It a Complete AVL Tree (完全AVL树的判断)
    AVL树(自平衡二叉查找树)
    PAT甲级——1126 Eulerian Path
    团队项目-选题报告
  • 原文地址:https://www.cnblogs.com/520playboy/p/6159751.html
Copyright © 2011-2022 走看看