使用HAProxy实现Percona XtraDB Cluster的负载均衡
2015-04-23 15:44
871 查看
1.前言
引用http://www.oschina.net/p/haproxyHAProxy,HAProxy提供高可用性、负载均衡。以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。下图是HAProxy的结构模型:
2.安装步骤
1)HAProxy安装环境OS:Redhat 6.5 32位
Hostname:mysql-repl01
ip addr:192.168.163.8
software:haproxy-1.5.3.tar.gz
2)Percona XtraDB Cluster环境
OS:Redhat 6.5 32位
Cluster:Percona-XtraDB-Cluster5.6.22-25
主节点:
hostname:mysql-pxc01
ip addr:192.168.163.6
备节点:
hostname:mysql-pxc02
ip addr:192.168.163.7
3)解压缩文件,进入到目录中
[root@mysql-rep01 haproxy]# tar xf haproxy-1.5.3.tar [root@mysql-rep01 software]# cd haproxy/
4)安装gcc
[root@mysql-rep01 haproxy-1.5.3]# yum install gcc
5)安装haproxy
[root@mysql-rep01 haproxy-1.5.3]# make TARGET=linux2628 ARCH=i686 [root@mysql-rep01 haproxy-1.5.3]# make install
6)创建haproxy的配置文件
[root@mysql-rep01 haproxy-1.5.3]# mkdir /haproxy
[root@mysql-rep01 haproxy-1.5.3]# cd /haproxy/
[root@mysql-rep01 haproxy]# touch haproxy.cfg
在haproxy.cfg中添加
global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 user nobody group nobody daemon defaults log global mode http option tcplog option dontlognull retries 3 option redispatch maxconn 2000 timeout connect 5000 timeout client 50000 timeout server 50000 frontend pxc-front bind *:3307 mode tcp default_backend pxc-back frontend stats-front bind *:80 mode http default_backend stats-back frontend pxc-onenode-front bind *:3306 mode tcp default_backend pxc-onenode-back backend pxc-back mode tcp balance roundrobin option httpchk server mysql-pxc01 192.168.163.6:3306 check port 9200 inter 12000 rise 3 fall 3 server mysql-pxc02 192.168.163.7:3306 check port 9200 inter 12000 rise 3 fall 3 backend stats-back mode http balance roundrobin stats uri /haproxy/stats stats auth pxcstats:secret backend pxc-onenode-back mode tcp balance leastconn option httpchk server mysql-pxc01 192.168.163.6:3306 check port 9200 inter 12000 rise 3 fall 3 server mysql-pxc02 192.168.163.7:3306 check port 9200 inter 12000 rise 3 fall 3
7)由于HAProxy不能自动识别Percona XtraDB Cluster中各个节点的状态是否正确,因此需要调用Percona自带的监控脚本来确认节点状态。在集群中创建监控用户。
mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!'; Query OK, 0 rows affected (0.21 sec)
8)验证集群节点状态监控是否正常。
[root@mysql-pxc01 bin]# /usr/bin/clustercheck HTTP/1.1 200 OK Content-Type: text/plain Connection: close Content-Length: 40 Percona XtraDB Cluster Node is synced.
备节点:
[root@mysql-pxc02 data1]# /usr/bin/clustercheck HTTP/1.1 200 OK Content-Type: text/plain Connection: close Content-Length: 40 Percona XtraDB Cluster Node is synced.
8)将监控程序添加到集群主备节点的服务xinetd当中,在/etc/xinetd.d中添加mysqlchk文件,添加如下
# default: on # description: mysqlchk service mysqlchk { # this is a config for xinetd, place it in /etc/xinetd.d/ disable = no flags = REUSE socket_type = stream port = 9200 wait = no user = nobody server = /usr/bin/clustercheck log_on_failure += USERID only_from = 0.0.0.0/0 # # Passing arguments to clustercheck # <user> <pass> <available_when_donor=0|1> <log_file> <available_when_readonly=0|1> <defaults_extra_file>" # Recommended: server_args = user pass 1 /var/log/log-file 0 /etc/my.cnf.local" # Compatibility: server_args = user pass 1 /var/log/log-file 1 /etc/my.cnf.local" # 55-to-56 upgrade: server_args = user pass 1 /var/log/log-file 0 /etc/my.cnf.extra" # # recommended to put the IPs that need # to connect exclusively (security purposes) per_source = UNLIMITED }
9)在集群主备节点的/etc/services中添加监控端口
mysqlchk 9200/tcp # mysqlchk
10)重启集群主备节点的xinetd服务,查看9200端口是否启动
[root@mysql-pxc01 xinetd.d]# service xinetd restart Stopping xinetd: [FAILED] Starting xinetd: [ OK ] [root@mysql-pxc01 xinetd.d]# netstat -an|grep -i 9200 tcp 0 0 :::9200 :::* LISTEN
11)启动HAProxy
[root@mysql-rep01 haproxy]# haproxy -f /haproxy/haproxy.cfg
12)查看HAProxy的状态
登录到我们指定的url中 http://192.168.163.8/haproxy/stats,用户名/密码为pxcstats/secret
.
HAProxy配置完成。
相关文章推荐
- 使用sysbench检测HAProxy对于Percona XtraDB Cluster的负载均衡和故障检测
- 基于HAproxy的percona xtradb cluster的负载
- 使用HAproxy,keepalived实现简单LAMP架构的负载均衡与高可用
- 使用HaProxy实现Thrift服务端的负载均衡
- 使用ubuntu+haproxy+heartbeat搭建大规模WEB集群环境实现负载均衡。
- Haproxy和pacemaker结合corosync实现负载均衡高可用,以及crm命令的使用
- 详解spring cloud中使用Ribbon实现客户端的软负载均衡
- Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】
- 使用ZooKeeper实现软负载均衡(原理)
- 配置haproxy支持使用多个lan内网ip做负载均衡以突破haproxy机只支持64k连接(突破单ip 65535端口限制)
- Haproxy实现负载均衡,网页重定向,访问请求动静分离,上传下载分离
- 使用nginx实现负载均衡
- linux运维进阶-Haproxy和pacemaker结合corosync实现负载均衡高可用及crm命令
- 使用Haproxy搭建负载均衡高可用群集
- Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享
- PXC5.7(Percona XtraDB Cluster)+HAproxy集群部署
- SpringCloud 微服务简介及搭建(本文使用Spring封装后的API,实现负载均衡的功能)
- Percona XtraDB Cluster 的一些使用限制(PXC 5.7)
- win2003 使用DNS服务器实现负载均衡
- nginx+tomcat实现负载均衡,使用redis session共享