美文网首页
HAProxy + MyCat + MySQL 集群部署

HAProxy + MyCat + MySQL 集群部署

作者: mvictor | 来源:发表于2017-11-15 15:22 被阅读193次

    架构图

    use3.png

    准备节点

    MySQL

    1. mysql_master

      ip: 172.17.0.6
      server-id: 2101
      
    2. mysql_slave_01

      ip: 172.17.0.7
      server-id: 2102
      
    3. mysql_slave_02

      ip: 172.17.0.8
      server-id: 2103
      

    MyCat

    mycat_01 ip: 172.17.0.9
    mycat_02 ip: 172.17.0.10
    

    mycat 模拟用户

    管理员:root:123456
    只读:guest:123456
    

    HAProxy

    ip: 172.17.0.11
    

    MySQL 主从复制

    参考Amoeba for MySQL

    HAProxy

    参考 RabbitMQ 高可用集群

    部署 MyCat

    1. 下载 MyCat

      root@mycat_02:~# wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
      root@mycat_02:~# ls
      Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
      root@mycat_02:~# cd /usr/local/
      root@mycat_02:/usr/local# tar -zxvf /root/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
      
    2. 配置 MyCat

      server.xml

      <user name="root">
      <property name="password">123456</property>
      <property name="schemas">test</property>
      </user>
      
      <user name="guest">
          <property name="password">123456</property>
          <property name="schemas">test</property>
          <property name="readOnly">true</property>
      </user>
      

      schema.xml

      <?xml version="1.0"?>
      <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
      <mycat:schema xmlns:mycat="http://io.mycat/">
      
          <schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode='dnTest'>
          </schema>
          <dataNode name="dnTest" dataHost="robostore" database="test" />
          <dataHost name="robostore" maxCon="1000" minCon="10" balance="1"
                    writeType="0" dbType="mysql" dbDriver="native" switchType="2"  slaveThreshold="100">
              <heartbeat>show slave status</heartbeat>
              <!-- can have multi write hosts -->
              <writeHost host="master" url="172.17.0.6:3306" user="root"
                         password="root">
                  <!-- can have multi read hosts -->
                  <readHost host="slave01" url="172.17.0.7:3306" user="root" password="root" />
                  <readHost host="slave02" url="172.17.0.8:3306" user="root" password="root" />
              </writeHost>
          </dataHost>
      </mycat:schema>
      

      属性解释

      balance:

      0: 不开启读写分离机制。
      1: 全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
      2. 所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡。
      

      writeType:

      0: 写操作只写入一个节点
      

      switchType:

      -1: 表示不启用主从切换
      1: 为默认值,自动切换
      2: 基于主从同步的状态,决定是否切换,与show slave status心跳对应
      3: 基于多住galary集群切换,与show status like 'wsrep%'对应
      
    3. 运行 MyCat

      root@mycat_02:/usr/local/mycat/bin# ./mycat start
      

    相关文章

      网友评论

          本文标题:HAProxy + MyCat + MySQL 集群部署

          本文链接:https://www.haomeiwen.com/subject/hnthvxtx.html