Xtradb+Haproxy高可用数据库集群(二)haproxy负载均衡篇

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

Xtradb集群部署完成后,3台机器都能同时读写,此时需要在前端搭建haproxy来进行负载均衡。

官网haproxy配置参考地址:


https://www.percona.com/doc/percona-xtradb-cluster/5.6/howtos/virt_sandbox.html


Haproxy服务器配置

拿一台机器用作haproxy,此处是192.168.6.219

安装haproxy

yum install haproxy -y

 

配置文件:

[root@yang-219 ~]# cat /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

contimeout 5000

clitimeout 50000

srvtimeout 50000

 

frontend pxc-front

bind *:3307

mode tcp

default_backend pxc-back

 

frontend stats-front

bind *:8080

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 c1 192.168.70.71:3306 check port 9200 inter 12000 rise 3fall 3

server c2 192.168.70.72:3306 check port 9200 inter 12000 rise 3fall 3

server c3 192.168.70.73:3306 check port 9200 inter 12000 rise 3fall 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 c1 192.168.70.71:3306 check port 9200 inter 12000 rise 3fall 3

server c2 192.168.70.72:3306 check port 9200 inter 12000 rise 3fall 3

server c3 192.168.70.73:3306 check port 9200 inter 12000 rise 3fall 3

 

启动haproxy

/etc/init.d/haproxy start


web访问


上面配置的8080端口及/haproxy/stats

访问url192.168.6.219:8080/haproxy/stats  

用户名密码是上面配置的pxcstats:secret

 wKioL1XLHSPRsohPAAIHV_hx58I687.jpg


xtradb服务器上xinetd配置

在所有xtradb服务器上,都要配置xinetd打开9200端口来进行监控。

yum instal  xinetd

 

配置mysqlchk监控

[root@percona2 mysql]# cat /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

        #

        # Passingarguments 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-56upgrade: server_args = user pass 1 /var/log/log-file 0 /etc/my.cnf.extra"

        #

        # recommended toput the IPs that need

        # to connectexclusively (security purposes)

        per_source      = UNLIMITED

}

默认安装xtradb server后会安装此配置.

 

重启xinetd服务

/etc/init.d/xinetd restart


haproxy每一段时间检测xtradb服务器上的9200端口,当clustercheck命令执行的结果不是200时,haproxy的检测将会把该机器从负载均衡中摘除,从而达到自动failover的效果。





     本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1684134 ,如需转载请自行联系原作者



相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
29天前
|
存储 负载均衡 NoSQL
搭建高可用及负载均衡的Redis
通过本文介绍的高可用及负载均衡Redis架构,可以有效提升Redis服务的可靠性和性能。主从复制、哨兵模式、Redis集群以及负载均衡技术的结合,使得Redis系统在应对高并发和数据一致性方面表现出色。这些配置和技术不仅适用于小型应用,也能够支持大规模企业级应用的需求。希望本文能够为您的Redis部署提供实用指导和参考。
115 9
|
3月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
140 61
|
2月前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
3月前
|
存储 数据库
快速搭建南大通用GBase 8s数据库SSC共享存储集群
本文介绍如何GBase8s 数据库 在单机环境中快速部署SSC共享存储集群,涵盖准备工作、安装数据库、创建环境变量文件、准备数据存储目录、修改sqlhost、设置onconfig、搭建sds集群及集群检查等步骤,助你轻松完成集群功能验证。
|
3月前
|
Shell 数据库
GBase8a 数据库新集群第一次创建dblink
GBase8a 数据库新集群第一次创建dblink
|
3月前
|
SQL 数据库
GBase8a 数据库集群v953扩容案例问题分享
GBase8a 数据库集群v953扩容案例问题分享
|
3月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
3月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库集群
PostgreSQL的逻辑存储结构涵盖了数据库集群、数据库、表、索引、视图等对象,每个对象都有唯一的oid标识。数据库集群是由单个PostgreSQL实例管理的所有数据库集合,共享同一配置和资源。集群的数据存储在一个称为数据目录的单一目录中,可通过-D选项或PGDATA环境变量指定。
|
3月前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
5月前
|
存储 缓存 关系型数据库
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
在云原生存算分离架构下,多计算集群的实现从技术方案上看似乎并不存在过多难题。但从产品的角度而言,具备成熟易用的多计算集群能力且能运用于用户实际业务场景中,还有较多核心要点需要深度设计
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用