mycat 方案整理

一、整体高可靠架构


应用访问ha 的vip来访问数据库。多个mycat可以达到负载均衡和高可靠。

二、mycat 基本配置

1、表按库分区

<schema name="DBTest" checkSQLschema="false" sqlMaxLimit="100">
        <!-- sharding by murmur id -->
        <table name="tasks" dataNode="dn1,dn2" rule="mod-long" />
        </schema>
        <dataNode name="dn1" dataHost="remotehost1" database="db" />
        <dataNode name="dn2" dataHost="remotehost2" database="db" />

2、负载均衡

      <dataHost name="remotehost1" 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="hostM1" url="172.18.0.2:3306" user="root"
                                   password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="172.18.0.3:3306" user="root" password="123456" />
                </writeHost>
        </dataHost>
        <dataHost name="remotehost2" 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="hostM1" url="172.18.0.17:3306" user="root"
                                   password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="172.18.0.18:3306" user="root" password="123456" />
                </writeHost>

        </dataHost>

上述,.2和.3为一个主从,.2为主;   .17和.18为一个主从,.17 为主;

四个数据库里面都建立了db 实例库。

逻辑表tasks 数据记录平均分配存储到两个主从集群上。

三、总结

mycat
  schema name(逻辑库名)
table name 逻辑表[rule="mod-long" 记录分库的算法]--》dataNode 逻辑库节点--》远程主机组(主从结构)dataHost  以上是表按记录分库存储。

    writeHost--》readHost     读写分离

访问的时候,直接访问mycat 的主机和端口,逻辑库名+逻辑表名。

猜你喜欢

转载自blog.csdn.net/zysgdhf4253/article/details/80447656
今日推荐