mysql之PXC5.7.18集群系列——2.HAProxy
来源:互联网 发布:最新小说网盘搜索 知乎 编辑:程序博客网 时间:2024/05/21 23:33
1. 相关准备
官方网站:http://www.haproxy.org
IP:172.16.3.30
2. 编译安装
# cd /home/soft/haproxy.1.7.8
# make TARGET=linux26 prefix=/home/soft/haproxy
# make install PREFIX=/home/soft/haproxy
备注:uname -r,查看TARGET=linux??
3. 创建用户
# useradd haproxy
4. 开放端口
# iptables -I INPUT -p tcp -m multiport –dport 80,3306,3307 -j ACCEPT
# service iptables save
# service iptables restart
备注:开放端口目的,配置下一步的haproxy.cfg
5. 配置haproxy.cfg
# vim /etc/haproxy/haproxy.cfg
global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 chroot /usr/share/haproxy user haproxy group haproxy daemon defaults log global mode http option tcplog option dontlognull retries 3 option redispatch maxconn 2000 timeout connect 5s #haproxy端 timeout client 8h #mysql client端 timeout server 1h #mysql server端 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 *:3308 mode tcp default_backend pxc-onenode-back backend pxc-back mode tcp balance leastconn option httpchk server mysql01 172.16.3.31:3306 check port 9200 inter 12000 rise 3 fall 3 server mysql02 172.16.3.32:3306 check port 9200 inter 12000 rise 3 fall 3 server mysql03 172.16.3.33:3306 check port 9200 inter 12000 rise 3 fall 3 backend stats-back mode http balance roundrobin stats uri /haproxy/stats stats auth admin:haproxy backend pxc-onenode-back mode tcp balance leastconn option httpchk server mysql01 172.16.3.31:3306 check port 9200 inter 12000 rise 3 fall 3 server mysql02 172.16.3.32:3306 check port 9200 inter 12000 rise 3 fall 3 backup server mysql03 172.16.3.33:3306 check port 9200 inter 12000 rise 3 fall 3 backup
备注:1.frontend *** 配置的端口需开放备注:2.uri /haproxy/stats,配置网页地址 备注:3.auth admin:haproxy,配置账号密码
6. 配置service haproxy
# vim /etc/init.d/haproxy
#!/bin/sh # # haproxy # # chkconfig: - 85 15 # description: HAProxy is a free, very fast and reliable solution \ # offering high availability, load balancing, and \ # proxying for TCP and HTTP-based applications # processname: haproxy # config: /etc/haproxy/haproxy.cfg # pidfile: /var/run/haproxy.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 exec="/home/soft/haproxy/sbin/haproxy" prog=$(basename $exec) [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog cfgfile=/etc/haproxy/haproxy.cfg pidfile=/var/run/haproxy.pid lockfile=/var/lock/subsys/haproxy check() { $exec -c -V -f $cfgfile $OPTIONS } start() { $exec -c -q -f $cfgfile $OPTIONS if [ $? -ne 0 ]; then echo "Errors in configuration file, check with $prog check." return 1 fi echo -n $"Starting $prog: " # start it up here, usually something like "daemon $exec" daemon $exec -D -f $cfgfile -p $pidfile $OPTIONS retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " # stop it here, often "killproc $prog" killproc $prog retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { $exec -c -q -f $cfgfile $OPTIONS if [ $? -ne 0 ]; then echo "Errors in configuration file, check with $prog check." return 1 fi stop start } reload() { $exec -c -q -f $cfgfile $OPTIONS if [ $? -ne 0 ]; then echo "Errors in configuration file, check with $prog check." return 1 fi echo -n $"Reloading $prog: " $exec -D -f $cfgfile -p $pidfile $OPTIONS -sf $(cat $pidfile) retval=$? echo return $retval } force_reload() { restart } fdr_status() { status $prog } case "$1" in start|stop|restart|reload) $1 ;; force-reload) force_reload ;; check) check ;; status) fdr_status ;; condrestart|try-restart) [ ! -f $lockfile ] || restart ;; *) echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}" exit 2 esac
备注:如果启动错误,请仔细查看错误提示,修改行号22-29的文件路径
7.clustercheck
(1) 添加clustercheck权限
mysql> grant process on *.* to 'clustercheckuser'@'localhost' identified by 'clustercheckpassword!';
mysql> flush privileges;
# clustercheck
HTTP/1.1 200 OK
备注:此时,数据库已处于集群状态,因此在任意一个Node下登陆mysql执行即可
(2) xinetd守护进程
# yum -y install xinetd
# vim /etc/services
mysqlchk 9200/tcp #add mysqlchk
# vim /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 type = UNLISTED 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 }
# service xinetd restart
备注:PXC每个Node下安装xinetd
8.启动haproxy
# /home/soft/haproxy/sbin/haproxy start
9.监控页面
http://172.16.3.30/haproxy/stats
备注:admin,haproxy
- mysql之PXC5.7.18集群系列——2.HAProxy
- mysql之PXC5.7.18集群系列——3.xtrabackup
- mysql之PXC5.7.18集群系列——1. Percona XtraDB Cluster
- MySQL从库集群方案之HAProxy篇
- HAProxy系列—配置文件详解
- HAProxy系列—ACL详解
- MySQL Galera Cluster集群+haproxy
- 负载均衡集群解决方案——haproxy
- HAProxy系列—keepalived+haproxy实现高可用负载层
- Haproxy+mysql cluster( MySQL 集群) 配置
- 数据库集群系列 — MySQL NDB
- Mycat之——Mycat集群部署(基于HAProxy + Mycat)
- Mycat之——高可用负载均衡集群的实现(HAProxy + Keepalived + Mycat)
- HAProxy系列—Linux下的安装
- MYSQL使用心得(七)----读写分离集群方案之haproxy+keepalived+abstractRoutingDataSource
- MySQL之——分布式集群
- 入坑系列之HAProxy负载均衡
- Mycat系列—Haproxy+Mycat实现负载均衡
- 笔记:mysql权限设置为外网可以访问。
- 面向对象设计原则
- Android客户端性能测试—CPU、启动时间(二)
- Tiobe九月编程榜发布!未来你最看好哪种编程语言?
- 从零开始搭载移动后端服务——Bmob移动后端云服务平台
- mysql之PXC5.7.18集群系列——2.HAProxy
- HikariCP-java6 版本引发的一个问题
- PHP对象接口
- 题目47:过河问题
- 如何给html元素的onclick事件传递参数即如何获取html标签的data
- 随机梯度下降法
- CentOS7.3安装单节点Oracle 12c数据库详细配置操作
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-总结及部分代码
- jeesite中的ztree应用