基于HA机制的MyCat架构——配置HAProxy

HAProxy简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。


一、安装

#gcc 安装
yum install gcc-c++
#下载
wget http://fossies.org/linux/misc/haproxy-1.6.9.tar.gz

#解压
tar -zxvf haproxy-1.6.9.tar.gz
cd haproxy-1.6.9

#安装
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

#参数说明
TARGET=linux26 #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;kernel大于2.6.28的用:TARGET=linux2628
ARCH=x86_64 #系统位数
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径

二、配置(自己创建)
/usr/local/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        #log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        chroot /usr/local/haproxy
        pidfile /usr/data/haproxy/haproxy.pid
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    tcp
        option  abortonclose
        option redispatch
        retries 3
        maxconn 2000
        timeout connect 5000
        timeout client  50000
        timeout server  50000


listen proxy_status 
    bind :48066
        mode tcp
        balance roundrobin
        server mycat_1 192.168.1.105:8066 check inter 10s
        server mycat_2 192.168.1.60:8066 check inter 10s

frontend admin_stats 
    bind :7777
        mode http
        stats enable
        option httplog
        maxconn 10
        stats refresh 30s
        stats uri /admin
        stats auth mldn:java
        stats hide-version
        stats admin if TRUE

a、创建一个haproxy的数据保存路径:mkdir -p /usr/data/haproxy/
b、找到listen proxy_status配置mycat信息

三、启动

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

四、查看状态

ps -ef|grep haproxy

http://192.168.1.105:7777/admin

#说明:
7777即haproxy配置文件中监听端口
/admin 即haproxy的访问路径
用户名/密码:mldn/java

五、mycat记得启动

六、通过haproxy进行登录

在192.168.1.60(mysql master)上登录haproxy
mysql -uroot -p123456 -h192.168.1.105 -P48066 -DTESTDB

#参数说明
-uroot:mycat用户名
-p123456:mycat密码
-h192.168.1.105:haproxy ip
-P48066:haproxy端口
-DTESTDB:mycat逻辑库

原文地址:https://www.cnblogs.com/linjiqin/p/8059703.html