这篇文章,我讲介绍如何为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/bin

2、 clustercheck脚本执行通过监控MySQL的几个变量/状态 Galera节点上定期检查。 它会产生一个相应的HTTP返回代码一个简单的HTML输出(无论是503 - 服务不可用或200 - OK)。 为了让事情更容易为HAProxy的触发脚本,并获得后端的最新状态,我们必须让它侦听的端口。 我们可以使用xinetd打开脚本到一个服务进程,并使其听一个自定义的端口,在这种情况下,我将使用9200。创建一个名为/etc/xinet.d/mysqlchk的新文件,并添加以下几行:

# default: on# description: mysqlchkservice mysqlchk

{  disable = no

flags = REUSE

socket_type = stream

port = 9200  wait = no

user = nobody

server = /usr/local/bin/clustercheck  log_on_failure += USERID

only_from = 0.0.0.0/0

per_source = UNLIMITED

}

3、添加Mysqlchk服务到xinetd

echo 'mysqlchk      9200/tcp    # MySQL check' >>/etc/services

4、默认情况下,该脚本将使用MySQL用户名为“clustercheckuser”,密码为“clustercheckpassword!”。 我们需要确保这个MySQL用户与对应的密码存在的脚本将能够执行健康检查之前。 运行下面的DB节点之一(Galera应该复制该语句到其他节点)DDL语句:

mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';

mysql> FLUSH PRIVILEGES;

你可以改变clustercheck script的32,33行,这篇文章我们使用默认用户名和密码。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/Ubuntu

B)通过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 TARGET=linux26

$ cp -f haproxy /usr/sbin/haproxy

从源代码(选项B)安装带有没有初始化脚本。所以你需要手动的通过命令行启动。配置HAproxy现在,我们已经安装了HAProxy的。 我们需要将其配置为在端口3307监听MySQL服务,并执行后端健康检查。

在/etc/haproxy/haproxy.cfg,确保以下行存在:

global

pidfile /var/run/haproxy.pid

daemon

user haproxy

group haproxy

stats socket /var/run/haproxy.socket user haproxy group haproxy mode 600 level admin

maxconn 8192

spread-checks 3

quiet

defaults

mode    tcp

option  dontlognull

option tcp-smart-accept

option tcp-smart-connect

retries 3

option redispatch

maxconn 8192

timeout check   3500ms        timeout queue   3500ms        timeout connect 3500ms        timeout client  10800s        timeout server  10800s

userlist STATSUSERS        group admin users admin

user admin insecure-password admin

user stats insecure-password yourpassword

listen admin_page 0.0.0.0:9600

mode http

stats enable

stats refresh 60s

stats uri /

acl AuthOkay_ReadOnly http_auth(STATSUSERS)

acl AuthOkay_Admin http_auth_group(STATSUSERS) admin

stats http-request auth realm admin_page unless AuthOkay_ReadOnly

listen  mysql_3307

bind *:3307

mode tcp        timeout client  10800s        timeout server  10800s

balance leastconn        option httpchk        option allbackups        default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 64 maxqueue 128 weight 100

server db1 10.0.0.187:3306 check

server db2 10.0.0.188:3306 check

server db3 10.0.0.189:3306 check

现在开机启用该服务,让其工作。RHEL/CentOS 6:

$ chkconfig haproxy on # RHEL6$ service haproxy start # RHEL6

Ubuntu 14.04 and lower, Debian 7 and lower:

$ update-rc.d haproxy defaults$ sudo service haproxy start

RHEL/CentOS 7, Debian 8, Ubuntu 15.04:

$ systemctl enable haproxy

$ systemctl start haproxy

验证Haproxy端口监听是否正常:

sudo netstat -tulpn | grep haproxy

tcp        0      0 0.0.0.0:9600            0.0.0.0:*               LISTEN      370/haproxy

tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN      370/haproxy

3307是MySQL的负载平衡端口,而9600是HAProxy的统计页面。 您可以登录访问http检查状态:// haproxy_ip_address:9600 /,以用户名“管理员”和密码登录“你的密码”作为配置的内部haproxy.cfg。 你应该看到类似下面的内容:

现在你可以把你的应用程序或者Mysql的客户端执行harproxy代理的3307端口,用于Mysql的负载均衡和故障自动转移。

mysql galera haproxy_安装配置Haproxy代理MySQL Galera集群相关推荐

  1. mysql8.0 利用docker容器安装配置多主多从集群

    mysql8.0 利用docker容器安装配置多主多从集群 原文:https://www.cnblogs.com/lkl6/p/14191419.html

  2. docker 多个mysql_mysql8.0 利用docker容器安装配置多主多从集群

    1. 在/user/local/share/下创建mysql文件夹,在mysql文件夹目录下创建4个文件夹分别是: master1, master2, slave1, slave2分别在每个目录下建立 ...

  3. wamp的mysql单独使用_Windows 7+8.1+10 单独安装配置 PHP+Apache+MySQL(不使用 WAMP)

    Windows 8.1 单独安装配置 PHP+Apache+MySQL(不使用 WAMP) 本文同样适用于Windows7和10 0x00 PHP [下载]http://www.doczj.com/d ...

  4. PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程(转)

    转至:http://www.leapsoul.cn/?p=695 这两天刚装好Windows 7,碰巧前段时间有朋友问我Windows下如何安装搭建PHP环境,所以打算勤劳下,手动一步步搭建PHP环境 ...

  5. centos6.4下安装配置JDK+TOMCAT+MYSQL笔记

    在公司测试环境,需要在CENTOS6.4下安装配置JDK+TOMCAT+MYSQL,下面是一个安装笔记留存备用. 一.系统环境和软件包 [root@localhost /]# uname -r 2.6 ...

  6. PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程

    来源:http://www.leapsoul.cn/?p=695 这两天刚装好Windows 7,碰巧前段时间有朋友问我Windows下如何安装搭建PHP环境,所以打算勤劳下,手动一步步搭建PHP环境 ...

  7. mysql 5.5 安装配置方法图文教程

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 回忆一下mysql 5.5 安装配置方法,整理mysql 5.5 安装配置教程笔记,分享给大家. M ...

  8. Apache+Mysql+php+ZenTaoPMS安装配置文档

    基于Apache+Mysql+php+ZenTaoPMS安装配置 一.Apache安装配置 tar zxvf httpd-2.2.23.tar.gz cd httpd-2.2.23 mkdir –p ...

  9. windows apche php mysql zend_Windows XP上安装配置 Apache+PHP+Mysql+Zend

    Windows XP上安装配置 Apache+PHP+Mysql+Zend 发布时间:2008-09-08 19:38:42   作者:佚名   我要评论 所需软件: apache_2.0.58-wi ...

最新文章

  1. 小猿圈之git 的几个好用自定义命令
  2. 测试start backup和ndb_restore
  3. 循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍
  4. Gartner发布2022年政府行业重要业务趋势:数字化与创新、基础设施等
  5. 日志转化成json格式
  6. LODOP不同电脑打印效果不同排查
  7. NVIDIA芯片组BIOS设置和RAID设置简单介绍
  8. 【React Native 安卓开发】----(View实战之仿携程)【第三篇】
  9. 如何用树莓派搭建一台永久运行的个人服务器?
  10. php私有云盘,教你搭建个人/企业私有云盘-kodexplorer
  11. ISO 2675:2021汽车仪表盘,操控台各符号意义,国际标准Road vehicles — Symbols for controls, indicators and tell-tales
  12. GIS空间分析 数字地形分析4 明暗等高线的制作
  13. 如何全网智能识别文章页,识别正文和标题
  14. 计算机编程的11种趋势:
  15. 海外虚拟主机空间:如何使用CDN加速提升用户体验?
  16. tensorflow的slim调用预训练模型的权重进行迁移学习的一些感触
  17. 大数据各岗位薪资多少?一张图告诉你答案
  18. C primer plus第二章读书笔记3
  19. Android多页蒙版遮罩引导功能(源码+解析)
  20. nginx+https+自签名+各种云dns解析+浏览器安全可用include相对路径和绝对路径

热门文章

  1. 海量结构化数据存储技术揭秘:Tablestore存储和索引引擎详解
  2. 基于Tablestore Tunnel的数据复制实战
  3. 阿里重磅开源Blink:为什么我们等了这么久?
  4. 离线计算成本节省的神兵利器
  5. MaxCompute - ODPS重装上阵 第一弹 - 善用MaxCompute编译器的错误和警告
  6. Spark精华问答 | 谈谈spark中的宽窄依赖
  7. 云在物联网中的惊人优势 | 技术头条
  8. 混合云异军突起 英特尔的全“芯”体验为企业保驾护航
  9. vue自定义指令(详细)
  10. java集合表_java集合类散列表