本篇文章给大家带来的内容是关于如何使用haproxy负载均衡mysql ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
系统是一主多从的模式,读写分离是在应用程序的层面实现的,insert、delete、update、alter走主库,select给从库。然后给从库做了load balancing,用keepalived组合haproxy。
话不多说,直接开干。
系统环境 :centos7
话说回来,不知何时起haproxy的社区官网被墙了...唉唉唉,可以通过这个地址下载最新稳定版本的haproxy 。
# wget https://www.haproxy.org/download/1.8/src/haproxy-1.8.9.tar.gz
建议朋友们在安装之前读一读自述文件
# cat /usr/src/haproxy-1.8.9/README
安装haproxy,这里前缀关键字PREFIX指定安装目录,用的是大写字母。一般常规源码安装,是在configure指令后加选项"--prefix",要加以区分
# tar -zxf haproxy-1.8.9.tar.gz -C /usr/src/ # cd /usr/src/haproxy-1.8.9/ # make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy # make install PREFIX=/usr/local/haproxy
创建haproxy程序用户以及配置文件目录
# useradd -M -s /sbin/nologin haproxy # mkdir /etc/haproxy
haproxy配置文件在这个版本的包里没有提供样例,需要手动建立的
# touch /etc/haproxy/haproxy.cfg # more /etc/haproxy/haproxy.cfg #global log /dev/log local0 info log /dev/log local1 notice pidfile /var/run/haproxy.pid maxconn 400000 user haproxy group haproxy nbproc 1 daemon #defaults mode http log global option http-server-close option redispatch retries 0 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 300s timeout check 10s maxconn 100000 listen mysql_select bind *:3306 mode tcp balance roundrobin #balance source #option mysql-check user haproxy timeout server 15s timeout connect 15s server mysql162 192.168.5.162:3306 check port 3306 inter 5000 fall 5 server mysql163 192.168.5.163:3306 check port 3306 inter 5000 fall 5 server mysql164 192.168.5.164:3306 check port 3306 inter 5000 fall 5 listen stats mode http bind 0.0.0.0:7979 stats enable stats hide-version stats uri /haproxy?hello stats realm Haproxy\ Statistics stats auth qkc:pwd@123 stats admin if TRUE
haproxy的日志默认是输出到系统的syslog中,查看起来不是非常方便,为了更好地管理haproxy
日志,我们在生产线一般都是独立定义出来,定义方法如下:
(1)修改 haproxy.cfg 关于日志配置的选项,在global中加入如下配置,将info及notice日志分别记录到不同文件中。
log /dev/log local0 info log /dev/log local1 notice
(2)修改rsyslog配置
为了便于管理,将haproxy相关的配置独立定义到 /etc/rsyslog.d/haproxy.conf 中。这部分配置将info和notice日志分别记录到 /var/log/haproxy181/{haproxy181-info.log,haproxy181-notice.log} 文件中,其中" & ~"表示当日志写入到日志文件后,rsyslog停止处理这个信息。这里配置的语法是rainerscript脚本语言写的。
# vim /etc/rsyslog.d/haproxy.conf if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy181/haproxy181-info.log& ~if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy181/haproxy181-notice.log& ~
检测haproxy.cfg配置文件语法是否正确
# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c
没有问题的话,就去掉-c选项,启动haproxy
# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
[root@server181 haproxy]# ss -antulp | grep haproxy tcp LISTEN 0 128 *:3306 *:* users:(("haproxy",pid=3315,fd=4)) tcp LISTEN 0 128 *:7979 *:* users:(("haproxy",pid=3315,fd=6))
配置haproxy开机自启动
# chmod +x /etc/rc.d/rc.local # echo '/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg' >> /etc/rc.d/rc.local
连接haproxy进行测试
# for i in $(seq 1 10); do mysql -utest -p123456 -h192.168.5.181 -e 'select @@server_id;'; done | egrep '[0-9]' 3306164 3306162 3306163 3306164 3306162 3306163 3306164 3306162 3306163 3306164
然后再拿一台服务器同样做haroxy,整合keepalived。远程系统用mysql客户端连接负载均衡vip进行登录,再逐个进行health check、failover等项目测试。
总结:
haproxy在中等规模负载之上有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象,这意味着haproxy进程消耗比系统空间消耗低20倍以上。因此,对OS进行性能调优是非常重要的。即使用户空间的占用率提高一倍,其CPU占用率也仅为10%,这也解释了为何7层处理对性能影响有限这一现象。由此,在高端系统上haproxy的7层性能可轻易超过硬件负载均衡设备。
haproxy支持给tcp做代理的特性使得其还可以为mysql读库做负载均衡,并且能够发挥相当不错的性能。
以上是如何使用haproxy负载均衡mysql的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux维护模式通过在启动时添加init=/bin/bash或single参数进入。1.进入维护模式:编辑GRUB菜单,添加启动参数。2.重新挂载文件系统为读写模式:mount-oremount,rw/。3.修复文件系统:使用fsck命令,如fsck/dev/sda1。4.备份数据并谨慎操作,避免数据丢失。

本文探讨如何在Debian系统上提升Hadoop数据处理效率。优化策略涵盖硬件升级、操作系统参数调整、Hadoop配置修改以及高效算法和工具的运用。一、硬件资源强化确保所有节点硬件配置一致,尤其关注CPU、内存和网络设备性能。选择高性能硬件组件对于提升整体处理速度至关重要。二、操作系统调优文件描述符和网络连接数:修改/etc/security/limits.conf文件,增加系统允许同时打开的文件描述符和网络连接数上限。JVM参数调整:在hadoop-env.sh文件中调整

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

选择适合Debian系统的Hadoop版本,需要综合考虑以下几个关键因素:一、稳定性与长期支持:对于追求稳定性和安全性的用户,建议选择Debian稳定版,例如Debian11(Bullseye)。该版本经过充分测试,拥有长达五年的支持周期,能够确保系统稳定运行。二、软件包更新速度:如果您需要使用最新的Hadoop功能和特性,则可以考虑Debian的不稳定版(Sid)。但需注意,不稳定版可能存在兼容性问题和稳定性风险。三、社区支持与资源:Debian拥有庞大的社区支持,可以提供丰富的文档和

本文介绍如何在Debian系统上使用TigerVNC共享文件。你需要先安装TigerVNC服务器,然后进行配置。一、安装TigerVNC服务器打开终端。更新软件包列表:sudoaptupdate安装TigerVNC服务器:sudoaptinstalltigervnc-standalone-servertigervnc-common二、配置TigerVNC服务器设置VNC服务器密码:vncpasswd启动VNC服务器:vncserver:1-localhostno

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置

在Debian邮件服务器上安装SSL证书的步骤如下:1.安装OpenSSL工具包首先,确保你的系统上已经安装了OpenSSL工具包。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私钥和证书请求接下来,使用OpenSSL生成一个2048位的RSA私钥和一个证书请求(CSR):openss

在Debian系统上配置邮件服务器的虚拟主机通常涉及安装和配置邮件服务器软件(如Postfix、Exim等),而不是ApacheHTTPServer,因为Apache主要用于Web服务器功能。以下是配置邮件服务器虚拟主机的基本步骤:安装Postfix邮件服务器更新系统软件包:sudoaptupdatesudoaptupgrade安装Postfix:sudoapt


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

记事本++7.3.1
好用且免费的代码编辑器