docker搭建pxc集群与haproxy负载均衡

Docker虚拟机入门(二)--2.3 数据库负载均衡之搭建pxc集群+haproxy 目录 前言 数据库负载均衡的必要性 安装Haproxy镜像 创建Haproxy配置文件 创建Haproxy容器命令 启动h1容器 进入后台运行h1容器 启动proxy 创建账号 监控画面查看 总结   前言 上一节文章中,我们成功搭建了pxe数据库集群,在pxe集群里面任何一个数据节点都是可以读写的,一旦pxe集群上线之后我们不能把所有的数据库请求全部发送给... 阅读详情

Percona XtraDB Cluster简称PXC。Percona Xtradb Cluster实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi-master的集群架构。

1、安装pxc镜像

docker pull percona/percona-xtradb-cluster

2、修改镜像名称

docker tag percona/percona-xtradb-cluster pxc
#docker images 出现两个imageId相同镜像,这时不能用docker rmi imageId删除,可通过docker rmi repository:tag删除

3、创建网络

docker network ls  #查看docker网络
docker network create --subnet=172.18.0.0/24 net1  #创建网络
docker inspect net1 #查看网络
[
    {
        "Name": "net1",
        "Id": "d06c2ce7488c64df8c2278279be9342bf339e1650691abab9b8a576c14075a20",
        "Created": "2018-09-02T10:37:27.626037191Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/24"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

4、创建数据卷

#数据卷是虚拟机与宿主机之间共享文件,如果容器出现异常,被删除掉,但是容器中的重要数据还是被保存下来,只需将新创建的容器挂载到数据卷上面即可。
#创建3台pxc集群,因此我准备3个数据卷v1、v2、v3
docker volume create v1 #创建数据卷
docker inspect v1 #查看数据卷,我们也可以去docker安装目录中volumes目录中查看数据卷是否创建成功

5、创建pxc容器

#创建第一个节点
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql --privileged --name=node1 --net=net1 --ip=172.18.0.2 pxc
#创建第二个节点
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql --privileged --name=node2 --net=net1 --ip=172.18.0.3 pxc
#创建第三个节点
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip=172.18.0.4 pxc

docker run [param ...] imageName  #创建容器命令
-d 后台运行
-p 容器与宿主机端口映射
-e MYSQL_ROOT_PASSWORD=abc123456 数据库密码
-e CLUSTER_NAME=PXC 指定集群名称
-e XTRABACKUP_PASSWORD=abc123456 指定集群之间同步需要的密码
v v1:/var/lib/mysql 把刚刚创建的数据卷挂载到mysql中
--name=node1 指定容器名称(当前我们把node1作为主节点、后面会创建node2)
--net=net1 指定网段
--ip=172.18.0.2 指定ip 

6、创建haproxy容器

docker pull haproxy #拉取镜像
cd /usr/local/ & mkdir -p docker/haproxy/
vim docker/haproxy/haproxy.cfg
######################################################################################
global
	#工作目录
	chroot /usr/local/etc/haproxy
	#日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
	log 127.0.0.1 local5 info
	#守护进程运行
	daemon
 
defaults
	log	global
	mode	http
	#日志格式
	option	httplog
	#日志中不记录负载均衡的心跳检测记录
	option	dontlognull
    #连接超时(毫秒)
	timeout connect 5000
    #客户端超时(毫秒)
	timeout client  50000
	#服务器超时(毫秒)
    timeout server  50000
 
#监控界面	
listen  admin_stats
	#监控界面的访问的IP和端口
	bind  0.0.0.0:8888
	#访问协议
    mode        http
	#URI相对地址
    stats uri   /dbs
	#统计报告格式
    stats realm     Global\ statistics
	#登陆帐户信息
    stats auth  admin:abc123456
#数据库负载均衡
listen  proxy-mysql
	#访问的IP和端口
	bind  0.0.0.0:3306  
    #网络协议
	mode  tcp
	#负载均衡算法(轮询算法)
	#轮询算法:roundrobin
	#权重算法:static-rr
	#最少连接算法:leastconn
	#请求源IP算法:source 
    balance  roundrobin
	#日志格式
    option  tcplog
	#在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
    option  mysql-check user haproxy
    server  MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000  
    server  MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000  
    server  MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000 
	#使用keepalive检测死链
    option  tcpka 
######################################################################################
docker run -it -d -p 4001:8888 -p 4002:3306 -v /usr/local/docker/haproxy:/usr/local/etc/haproxy --name haproxy --privileged --net=net1 --ip 172.18.0.7 haproxy
#进入haproxy启动容器
docker exec -it haproxy bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
#根据haproxy.cfg配置文件中、我们需要在db1数据库中创建一个haproxy用户
create user 'haproxy'@'%' identified by ''; 

 

7、pxc强一致性与haproxy负载均衡测试

node_01节点创建表,可同步到node_02和node_03
haproxy代理端口4002实现负载均衡
pxc节点监控
OpenHarmony-AI调研 基于OpenHarmony-5.0.0版本以及laval社区等网络资料调研当前OH上的AI发展情况。 阅读详情

相关推荐

基于ANSYS的电磁兼容仿真教程

最近,在做某系统的EMC仿真,使用ANSYS套件,对仿真学习做简要记录。本书简介与目录如下:本书配套有:视频教程+工程源文件+彩色仿真图片,下载链接如下:(审核中)第1章 基础知识1.1 电磁兼容基础​​​MS2、EMC三要素:3、 国际无线电干扰特别委员会标准:CISPR标准4、电磁兼容测试认证:传导发射(CE)、传导敏感度(CS)、辐射发射(RE)和辐射敏感度(RS)测试。

weixin_42508010的博客 2051

mysql 双机rac_Mysql上的RAC:Percona XtraDB Cluster负载均衡集群安装部署手冊

Percona XtraDB Cluster安装部署手冊编写此文档,供PerconaXtraDB Cluster部署时使用。系统维护人员及实施人员。通过阅读该手冊,让读者明白PerconaXtraDB Cluster的安装、配置和维护情况,为兴许数据库运维工作提供指导。应用部署方案环境准备服务器列表序号IP用途HOSTNAME操作系统1192.168.0.7Percona XtraDB Clust...

weixin_34506795的博客 332

智能车竞赛飞檐走壁组立体赛道电磁引导线设计与实现

本文深入解析了智能车竞赛飞檐走壁组立体赛道电磁引导线的核心设计与实现。针对垂直面、圆筒、跷跷板等立体元素,详细阐述了电磁线规格参数选择、三维空间铺设技巧及磁场调试方法,旨在帮助参赛队伍打造稳定可靠的导航系统,提升车模在复杂立体赛道上的通过率与稳定性。

bert9linguist的博客 279

swarm mysql集群_docker swarm使用keepalived+haproxy搭建基于percona-xtradb-cluster方案的高可用mysql集群...

一、部署环境序号hostnameip备注1manager10710.0.3.107centos7;3.10.0-957.1.3.el7.x86_642worker6810.0.3.68centos7;3.10.0-957.1.3.el7.x86_643worker8010.0.3.80centos7;3.10.0-957.1.3.el7.x86_64docker版本docker versionCl...

weixin_39620252的博客 400

Claude Skills 深度讲解

阶段 1:Function Call(2023)├─ 大模型可以调用外部工具├─ 问题:缺乏对任务的深度理解└─ 局限:工具调用简单线性阶段 2:MCP 上下文工程(2024)├─ 大模型有了更丰富的上下文和工具├─ 问题:仍然需要手动编写复杂的 Prompt└─ 局限:每次对话都需要重新加载上下文阶段 3:Claude Skills(2025)├─ 大模型有了「能力模块」的概念├─ 可以动态加载、组合、执行专门的工作流├─ 真正实现了「知识的模块化和复用」

u013134676的博客 1464

嵌入式Linux开发:手把手教你调试OV9281摄像头Sensor(基于全志平台DTS配置)

本文详细解析了嵌入式Linux开发中OV9281摄像头Sensor的调试全流程,重点介绍了基于全志平台的DTS配置指南。从硬件信号检测到软件驱动配置,包括设备树关键参数设置、内核驱动适配实战及图像质量调优技巧,为开发者提供了一套完整的调试方案,助力工业视觉和边缘计算设备的开发。

weixin_28716769的博客 371

MySQL部署PXC集群-全网最详细

Percona XtraDB Cluster(简称PXC)是基于Galera的MySQL高可用集群解决方案Galera Cluster是Codership公司开发的一套免费开源的高可用方案PXC集群主要由两部分组成:Percona Server with XtraDB(数据存储插件)和 Write Set Replication patches(同步、多主复制插件)官网:http://galeracluster.com。

征服Bug的博客 5785

开关电源EMI优化秘籍:三明治绕法如何让你的产品通过认证测试

本文深入解析了开关电源EMI优化中的三明治绕法,详细阐述了其通过改变绕组排布来减小初次级寄生电容、降低共模噪声的核心机理。文章提供了从绕制结构选择、绝缘安规处理到实测验证的全流程实战指南,帮助工程师有效利用这一工艺,提升产品通过CCC、CE等EMI认证测试的成功率。

tcp8optimizer的博客 705

PXC数据库集群的负载均衡

前一篇博客介绍了PXC数据库集群的搭建过程,但是这里有一个问题,虽然搭建了数据库集群,但是如果不使用数据库负载均衡,单节点处理所有的请求,还是会造成单个节点负载过高,数据库系统的性能较差。 本篇博客将会介绍如何通过Haproxy(转发器)做负载均衡,使得请求能够被均匀地分发给每一个节点,单节点负载得到降低,提高了数据库系统的性能。 指标 Haproxy Nginx Apache LVS 是否免费 免费 免费 免费 免费 支持虚拟机 支持 支持 支持 不支持 HTTP协议 支持 支持

XYZ 976

uniapp - 最新实现APP连接使用MQTT流程及源码教程,uniapp app端接入mqtt发布订阅和接收消息队列传送消息、断开重连等各种示例代码(完美兼容安卓Android与苹果ios手机)

uniapp app端接入mqtt示例代码教程,uni-app中使用mqtt,uniapp安卓app接入mqtt,uniApp苹果ios集成MQTT教程,uniapp vue3 mqtt app端的接入流程,uniapp开发安卓和ios如何在项目里集成mqtt,Mqtt协议,uniapp开发APP,主动连接mqtt,订阅消息,实现发布,订阅和接收消息,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,搭建MQTT通讯做聊天项目,uniapp与设备通信 通过mqtt实现

🏆 前端领域优质创作者 6570

随机优化 (Stochastic Optimization) 算法详解及案例分析

随机优化是一种用于处理包含随机变量的优化问题的方法。其目标是通过考虑随机变量的概率分布,找到一个在期望意义下最优的解。

闲人编程的博客 4174

HAproxy实现PXC负载均衡keepalived高可用

搭建PXC集群,可参考https://blog.youkuaiyun.com/du18020126395/article/details/115289632步骤1~9 环境规划 hostname 系统版本 备注 10.45.7.128 rac3 redhat7.4 PXC节点1(node1) 10.45.7.129 rac4 ..

Du.的博客 981

uniapp:实现APP获取陀螺仪数据、加速传感器、线性加速传感器,uniApp实时监听陀螺仪【XYZ】数据及停止监听与资源释放等功能示例源码,根据需求做功能(完美兼容Android安卓、苹果ios)

uniapp陀螺仪,uniapp加速传感器,uniapp线性加速传感器,APP陀螺仪数据,uniapp app 端获取陀螺仪数据示例代码,手机中获取陀螺仪的数据,uniApp实时获取陀螺仪xyz数据,android陀螺仪方向,获得陀螺仪传感器,处理传感器数据,停止监听与资源释放,Android使用陀螺仪,uniapp苹果ios陀螺仪,uni-app设备之(加速计,罗盘,陀螺仪)插件安卓/IOS APP提供了获取陀螺仪数据的能力,手机陀螺仪传感器获得手机自身旋转的角度,陀螺仪获取旋转角度,陀螺仪、加速度传感器

✅ 精选推荐文章 4265

docker下 搭建数据库PXC集群 并且使用 Haproxy进行数据库的负载均衡

负载均衡服务器有很多有大名鼎鼎的Nginx、Apache和LVS 但此次选择的是老牌的数据库中间件Haproxy 之所以选择Haproxy原因是Haproxy经过了时间考验,得到了大量用户的肯定。 负载均衡服务器对比 Haproxy Nginx Apache LVS 是否免费 是 是 是 是 支持虚拟机 是 是 ...

诗水人间 14万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于docker的mysql集群搭建(二):haproxy+pxc实现mysql负载均衡

上篇记录采用pxc搭建mysql集群,本篇记录基于haproxy+pxc实现mysql负载均衡 haproxy介绍 HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上 环

dh_2017的博客 521

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

云原生时代必须具备的核心技能之Docker高级篇(Docker实战之MySQL高可用集群搭建)

  本文来给大家介绍下MySQL在Docker中的集群搭建。 MySQL高可用集群搭建   MySQL集群搭建在实际项目中还是非常必须的,我们通过PXC【Percona XtraDB Cluster】来实现强一致性数据库集群搭建。 1.MySQL集群搭建 1> 拉去镜像 docker pull percona/percona-xtradb-cluster:5.7.21 2> 复制pxc镜像【重命名】 docker tag percona/percona-xtradb-cluster:5.7.2

波波烤鸭的博客 8785

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

mysql_pxc

Docker 搭建pxc集群 + haproxy + keepalived 高可用 docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行、重启、关闭Docker虚拟机 service docker start service docker stop 搜索镜像 docker se...

github_39294367的博客 260

docker搭建mysql集群

本文章使用Percona XtraDB Cluster(MySQL改进版,性能提升很大)进行集群搭建,集群mysql的数量是5,宿主机为centos7。 常见集群方案 PXC同步复制,事务在所有集群节点要么同时提交,要么不提交 Replication采用异步复制,无法保证数据的一致性 PXC集群实现是通过galera,而Replication是通过binlog异步同步,两者互不牵连,所以可...

wachoo的blog 515

Haproxy+PXC搭建Mysql集群(Docker环境)

原文地址:https://www.jianshu.com/p/f35b6254c2b0 安装环境 centos7, docker 集群方案介绍 大型网站数据库需要应对高负载、实现高可用。而单节点数据库在并发量大的情况下无法满足性能要求,且一台宕机,整个服务受影响。 Mysql集群:PXC 负载均衡:Haproxy 高可用:Keepalived 高可用Mysql集群方案 搭建px...

卡洛斯利伯 708

使用Docker搭建高可用Mysql数据库集群

文章目录前言正文选择哪一种搭建集群的方式PXCReplication安装dockerDocker操作的基本命令安装PXC集群负载均衡 前言 这篇文章是搭建高可用,高负载的第二篇。来学习的是搭建Mysql数据库集群,使其能够在模拟高并发的情况下,在其中的一些Mysql结点宕机的情况下也能够正常的访问,不会因为一个结点的宕机,就不能够再提供服务。在上一篇文章中讲到的是环境的搭建,具体参看linux环境...

weixin_44015043的博客 3974

docker 搭建Mysql集群

https://www.cnblogs.com/zhenghongxin/p/9228101.html docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行、重启、关闭Docker虚拟机 service docker start service docker stop 搜索...

静宁宇思 386

mysql集群搭建(PXC)

参考视频教程: **MySQL数据库集群-PXC方案 ** 基于虚拟机搭建mysql集群,使用docker进行安装,并对docker-compose方式进行了尝试。 0、tips ## 安装docker yum install -y docker ## 安装docker-compose curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-...

u013328649的博客 426

Docker搭建MySQL的PXC方案集群

安装Docker环境 搭建5个MySQL节点 拉取镜像到本地 docker pull percona/percona‐xtradb‐cluster 镜像名称太长不方便使用,进行一下改名,改名后删除原来的镜像 docker tag percona/percona‐xtradb‐cluster pxc docker rmi percona/percona‐xtradb‐cluster 创建内网网段net1 创建网段:docker network create --subnet=172.18.0.

clonechen 1180

durid连接mysql cluster_pxc集群与haproxy负载以及使用keepalived实现高可用And使用shardingJdbc搭配druid实现分区分表遇到的坑...

搭建pxc集群:1,安装pxc镜像:docker pull percona/percona-xtradb-cluster2,创建虚拟网段:docker network create --subnet=172.18.0.0/24 net1 查看:docker network inspect net1 删除:docker network rm net13,创建docker卷(直接映射宿主机路径会导...

weixin_42502896的博客 373

Docker部署Mysql集群

单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信红包巨大业务量,数据库承受巨大负载 常见MySQL集群方案   mysql 集群方案介绍,建议使用pxc,因为弱一致性会有问题,比如说a节点数据库显示我购买成功,b 节点数据库显示没有成功,这就麻烦了,pxc 方案是在全部节点都写入成功之后才会告诉你成功,是可读可写双向同步的,但是repl.

hybaym的专栏 2035
上一篇: docker安装与卸载
下一篇: Spring Cloud Ribbon-负载均衡
pin伴夏
博客等级 码龄9年 3粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值