我是靠谱客的博主 直率冬瓜,最近开发中收集的这篇文章主要介绍docker+keeplived+haproxy实现数据库的高可用负载均衡,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、什么是高可用和负载均衡?

高可用:系统中部分节点失效时,其他节点能够接替它继续提供服务,则为高可用。

负载均衡:建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。当请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求,则为负载均衡。

二、利用keepalived+haproxy实现双机热备,达到集群真正的高可用负载均衡

要想实现双击热备,关键的解决方法为Linux的虚拟IP技术+keepalived

双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机的功能。

2.1Linux的虚拟IP技术

虚拟IP,即在Linux网卡上绑定另一个虚拟IP,此时网卡有两个IP,一个真实IP一个虚拟IP,使用这两个IP中的任意一个都可以连接到这台主机。

 2.2利用keepalived实现双机热备功能

当两台haproxy的容器中安装keepalived后,keepalived运行时会抢占虚拟IP,抢到虚拟IP的keepalived所在的haproxy便作为主服务器,没有抢到便是从服务器。

主从服务器之间进行心跳检测,当主服务器宕机后,从服务器便会抢占虚拟IP,从而代替主服务器,保障运行。

2.3docker+keepalived+haproxy实现双击热备的架构图

docker的IP借助宿主机的keepalived实现与外网连接。一个请求经宿主机IP转发到docker的IP,docker的IP被任意容器内的keepalived抢占,请求又被转发到抢占docker虚拟IP的容器内的haproxy,通过haproxy的负载均衡技术将请求发送到数据库的某个节点上。

 三、操作

(1)创建docker-mysql-pxc集群

1.1拉取pxc镜像(拉取,重命名)

1.2建立单独网段

1.3创建docker卷

 

1.4启动pxc

(如果你是8.0+且没有使用相同的证书,那么你肯定会遇到一个ssl相关的错误“error:0407008A:rsaroutines:RSA_padding_check_PKCS1_type_1:invalid padding”。可以参考报错的官方网站提供解决方案处理)

pxc1

(必须要等待node1的数据库初始化完成且Navicat客服端连接成功后,才能创建其余节点,否则会出现闪退现象) 

pxc2

pxc3 

(2)拉取haproxy镜像

2.1创建haproxy1

优先创建haproxy的配置文件

创建容器并启动

2.2同样的方法创建并启动haproxy2

(3)加装keepalived

进入容器内,使用apt-get update更新容器内的下载工具,然后apt-get install 安装

再haproxy的宿主机映射目录中创建keepalived.conf文件

3.1  haproxy1 

将映射的keepalived.conf文件复制到/etc/keepalived下并启动keepalived

验证是否可以ping通keepalived所占的虚拟IP

3.2  haproxy2

(4)宿主机安装keepalived

注释原来的keepalived.conf文件,配置新的keepalived.conf文件

启动宿主机的keepalived服务并ping宿主机供请求访问的ip

(5)测试

通过宿主机keepalived绑定的ip访问haproxy监控服务 

(注意此时的IP是宿主机keepalived抢占的虚拟IP)

测试数据库请求

测试Haproxy双击热备的高可用

 ·暂停运行h1容器

·给数据库添加数据,如果仍然可以实现同步,即双击热备的高可用性实现

 

 

最后

以上就是直率冬瓜为你收集整理的docker+keeplived+haproxy实现数据库的高可用负载均衡的全部内容,希望文章能够帮你解决docker+keeplived+haproxy实现数据库的高可用负载均衡所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部