zoukankan      html  css  js  c++  java
  • mycat读写分离

    一、实现方式

    mycat作为一个数据库中间件,它能够实现读写分离。简单地说,它可以将“写数据”和“读数据”分开,分配到不同地数据库。但是,它并不能够做到对数据库进行数据同步,所以mycat地读写分离是依赖于数据库本身地“复制”功能。例如:mysql地“主从复制”或者“双主复制”等。

    二、主从复制||双主复制

    开启主从复制,或者主主复制

    主从复制:http://www.cnblogs.com/lay2017/p/9043985.html

    双主复制:http://www.cnblogs.com/lay2017/p/9045557.html

    三、配置读写分离

    本文基于之前的一篇“mycat分库分表”,地址:http://www.cnblogs.com/lay2017/p/9030709.html

    在它的基础上,只需要简单更改配置即可

    我们找到schema.xml文件,并更改配置:

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
        <!-- 配置逻辑库 -->
        <schema name="mycatdb" checkSQLschema="true" sqlMaxLimit="100" dataNode="dataNode1">
        </schema>
    
        <!-- 配置分片节点 -->
        <dataNode name="dataNode1" dataHost="dataHost1" database="数据库名" />
    
        <!-- 配置节点主机 -->
        <dataHost name="dataHost1" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql" dbDriver="native">
            <!-- 心跳 -->
            <heartbeat>select user()</heartbeat>
            <!-- 读写配置 -->
            <writeHost host="host1" url="写库的IP:3306" user="root" password="root">
                <readHost host="hostM1" url="读库的IP:3306" user="root" password="root">   
                </readHost>
            </writeHost>
        </dataHost>
    
    </mycat:schema>

    writehost配置写库

    readhost配置读库

    datahost中balance = "1" 表示 将所有的“读”操作发送到readhost上,减轻writehost的负担,以达到读写分离

    四,启动测试

    使用命令:./mycat start启动mycat

    就可以连接并测试数据库了

  • 相关阅读:
    C
    A
    G
    B
    一些新玩意:
    Angular常用功能
    node学习笔记(四)
    node学习笔记(三)
    node学习笔记(二)
    node学习笔记
  • 原文地址:https://www.cnblogs.com/lay2017/p/9048511.html
Copyright © 2011-2022 走看看