WordPress建站如何解析,做网站是咋收费的,广西壮族自治区住房和城乡住建厅官网,正规跨境电商平台有哪些这篇文章#xff0c;我讲介绍如何为MariaDB Galera 集群添加负载均衡#xff0c;大致步骤如下#xff1a;确认所有Galera节点作为一个单一集群运行(所有节点都是主节点而且相互同步)安装Haproxy(你可以安装到独立的服务器或者应用服务器)配置集群监控检测脚本#xff0c;用…这篇文章我讲介绍如何为MariaDB Galera 集群添加负载均衡大致步骤如下确认所有Galera节点作为一个单一集群运行(所有节点都是主节点而且相互同步)安装Haproxy(你可以安装到独立的服务器或者应用服务器)配置集群监控检测脚本用于检测每个backend server服务器健康配置Haproxy统计页面将应用程序指向Haproxy大致架构图如下配置集群检测脚本**本节中所描述的步骤应该是所有数据库节点上执行,除非另有指定。1、首先我们需要配置后端健康检查报告。 我们将使用现有的Percona的clustercheck。 拿到脚本并把它放在/usr/local/bin目录运行以下命令$ git clone https://github.com/olafz/percona-clustercheck$ cp percona-clustercheck/clustercheck /usr/local/bin2、 clustercheck脚本执行通过监控MySQL的几个变量/状态 Galera节点上定期检查。 它会产生一个相应的HTTP返回代码一个简单的HTML输出(无论是503 - 服务不可用或200 - OK)。 为了让事情更容易为HAProxy的触发脚本并获得后端的最新状态我们必须让它侦听的端口。 我们可以使用xinetd打开脚本到一个服务进程并使其听一个自定义的端口在这种情况下我将使用9200。创建一个名为/etc/xinet.d/mysqlchk的新文件并添加以下几行# default: on# description: mysqlchkservice mysqlchk{ disable noflags REUSEsocket_type streamport 9200 wait nouser nobodyserver /usr/local/bin/clustercheck log_on_failure USERIDonly_from 0.0.0.0/0per_source UNLIMITED}3、添加Mysqlchk服务到xinetdecho mysqlchk 9200/tcp # MySQL check /etc/services4、默认情况下该脚本将使用MySQL用户名为“clustercheckuser”密码为“clustercheckpassword”。 我们需要确保这个MySQL用户与对应的密码存在的脚本将能够执行健康检查之前。 运行下面的DB节点之一(Galera应该复制该语句到其他节点)DDL语句mysql GRANT PROCESS ON *.* TO clustercheckuserlocalhost IDENTIFIED BY clustercheckpassword!;mysql FLUSH PRIVILEGES;你可以改变clustercheck script的3233行这篇文章我们使用默认用户名和密码。5、验证脚本返回一个正确的值$ /usr/local/bin/clustercheck /dev/null$ echo $?0如果DB节点在已同步你应该得到0否则1应该是输出。 后端健康检查配置。安装Haproxy1、最简单的安装方法就是使用(yum/apt)包管理器然而强烈建议使用上HAProxy的网站提供的最新版本。无论哪种方式我下面都会介绍到。A)如果您选择通过软件包管理器安装HAProxy的$ yum install haproxy # Redhat/CentOS$ sudo apt-get install haproxy # Debian/UbuntuB)通过Haproxy官网下载源码$ yum install php-curl gcc make # Redhat/CentOS$ apt-get install php5-curl gcc make # Debian/Ubuntu$ wget http://www.haproxy.org/download/1.5/src/$ tar xvzfz$ cd$ make TARGETlinux26$ cp -f haproxy /usr/sbin/haproxy从源代码(选项B)安装带有没有初始化脚本。所以你需要手动的通过命令行启动。配置HAproxy现在我们已经安装了HAProxy的。 我们需要将其配置为在端口3307监听MySQL服务并执行后端健康检查。在/etc/haproxy/haproxy.cfg确保以下行存在globalpidfile /var/run/haproxy.piddaemonuser haproxygroup haproxystats socket /var/run/haproxy.socket user haproxy group haproxy mode 600 level adminmaxconn 8192spread-checks 3quietdefaultsmode tcpoption dontlognulloption tcp-smart-acceptoption tcp-smart-connectretries 3option redispatchmaxconn 8192timeout check 3500ms timeout queue 3500ms timeout connect 3500ms timeout client 10800s timeout server 10800suserlist STATSUSERS group admin users adminuser admin insecure-password adminuser stats insecure-password yourpasswordlisten admin_page 0.0.0.0:9600mode httpstats enablestats refresh 60sstats uri /acl AuthOkay_ReadOnly http_auth(STATSUSERS)acl AuthOkay_Admin http_auth_group(STATSUSERS) adminstats http-request auth realm admin_page unless AuthOkay_ReadOnlylisten mysql_3307bind *:3307mode tcp timeout client 10800s timeout server 10800sbalance leastconn option httpchk option allbackups default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 64 maxqueue 128 weight 100server db1 10.0.0.187:3306 checkserver db2 10.0.0.188:3306 checkserver db3 10.0.0.189:3306 check现在开机启用该服务让其工作。RHEL/CentOS 6:$ chkconfig haproxy on # RHEL6$ service haproxy start # RHEL6Ubuntu 14.04 and lower, Debian 7 and lower:$ update-rc.d haproxy defaults$ sudo service haproxy startRHEL/CentOS 7, Debian 8, Ubuntu 15.04:$ systemctl enable haproxy$ systemctl start haproxy验证Haproxy端口监听是否正常sudo netstat -tulpn | grep haproxytcp 0 0 0.0.0.0:9600 0.0.0.0:* LISTEN 370/haproxytcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 370/haproxy3307是MySQL的负载平衡端口而9600是HAProxy的统计页面。 您可以登录访问http检查状态// haproxy_ip_address9600 /以用户名“管理员”和密码登录“你的密码”作为配置的内部haproxy.cfg。 你应该看到类似下面的内容现在你可以把你的应用程序或者Mysql的客户端执行harproxy代理的3307端口用于Mysql的负载均衡和故障自动转移。