Mysql-proxy

作者: 杍劼 | 来源:发表于2016-08-11 10:08 被阅读105次

    一、SQL语句路由:

    如何在客户端应用的时候,路由语句,一般用两种方法:

    1.直接在PHP的mysql类做判断,最简单,不用额外加软件 ,比如discuz论坛:

    //可以充当sql语句路由功能的mysql类

    class mysql {

        $dbm = '主服务器';

        $dbs1 = '从服务器1';

        $dbs2 = '从服务器2';

        public function query() {

            //在query中进行语句判断,分别连接不同的mysql服务器

        }

    }

    2.用集群中间件:比如官方的mysql_proxy ,还有国产的中间件,如淘宝开发的amoeba

    二、mysql-proxy实现负载均衡+读写分离:

    1.下载安装mysql-proxy:http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz

    2.执行mysql-proxy:

    (1).设置负载均衡:

    ./bin/mysql-proxy \

    -P 192.168.61.145:4040 \

    --proxy-backend-addresses=192.168.61.145:3306 \

    --proxy-backend-addresses=192.168.61.146:3306

    (2).设置读写分离:

    ./bin/mysql-proxy \

    -P 192.168.61.145:4040 \

    --proxy-backend-addresses=192.168.61.145:3306\

    --proxy-read-only-backend-addresses=192.168.61.146:3306 \

    --proxy-lua-script=/opt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

    简写:

    ./bin/mysql-proxy \

    -b192.168.61.145:3306 \

    -r192.168.61.146:3306 \

    -s /opt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

    (3).指定mysql-proxy在后台执行:

    ./bin/mysql-proxy \

    -b192.168.61.145:3306 \

    -r192.168.61.146:3306 \

    -s /opt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua \

    --daemon

    3.因为proxy是mysql的前端调度代理,可以通过多个cmd终端远程连接mysql-proxy:

    mysql -h 192.168.61.145 -P 4040 -u root -p

    注:mysql_proxy会把连接mysql服务器的tcp/IP连接缓存进连接池,以提高性能,在缓存池里,缓存的连接大致是平均分配在每台mysql服务器上,但具体的每一个连接,却始终连某台服务器;

    相关文章

      网友评论

        本文标题:Mysql-proxy

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