基于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逻辑库