| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> docker+keeplived+haproxy实现数据库的高可用负载均衡 -> 正文阅读 |
|
[系统运维]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容器 ·给数据库添加数据,如果仍然可以实现同步,即双击热备的高可用性实现 ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 6:14:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |