一、安装简介1.1 安装目的MySQL官方提供了InnoDB Cluster,该集群由MySQL MGR和MySQL Router组成 。MySQL MGR在数据库层面实现自主高可用性,而MySQL Router则负责代理访问 。在部署完成后,MySQL Router将形成单点,如果出现故障,将会影响数据库集群的可用性 。因此,为了提高数据库系统的可用性,需要搭建MySQL Router的高可用性方案 。
1.2 MySQL router高可用组件介绍本篇文章中的高可用方案,主要是通过Corosync和Pacemaker是两个开源软件项目实现,它们结合起来为高可用性集群提供了通信、同步、资源管理和故障转移等服务 。
1.2.1 corosyncCorosync是一个开源的高可用性集群通信和同步服务,可以实现集群节点之间的通信和数据同步,同时提供了可靠的消息传递机制和成员管理功能,以确保在分布式环境下集群的稳定运行 。Corosync基于可靠的UDP多播协议进行通信,并提供了可插拔的协议栈接口,可以支持多种协议和网络环境 。它还提供了一个API,可以让其他应用程序使用Corosync的通信和同步服务 。
1.2.2 pacemakerPacemaker是一个开源的高可用性集群资源管理和故障转移工具,可以实现在集群节点之间自动管理资源(如虚拟IP、文件系统、数据库等),并在节点或资源故障时进行自动迁移,从而确保整个系统的高可用性和连续性 。Pacemaker支持多种资源管理策略,可以根据不同的需求进行配置 。它还提供了一个灵活的插件框架,可以支持不同的集群环境和应用场景,比如虚拟化、云计算等 。
将Corosync和Pacemaker结合起来,可以提供一个完整的高可用性集群解决方案 。它通过Corosync实现集群节点之间的通信和同步,通过Pacemaker实现集群资源管理和故障转移,从而确保整个系统的高可用性和连续性 。它们结合起来为高可用性集群提供了可靠的通信、同步、资源管理和故障转移等服务,是构建可靠、高效的分布式系统的重要基础 。
1.2.3 ldirectordldirectord是一个用于linux系统的负载均衡工具,它可以管理多个服务器上的服务,并将客户端请求分发到这些服务器中的一个或多个上,以提高服务的可用性和性能 。ldirectord通常是与Heartbeat或Keepalived等集群软件一起使用,以确保高可用性和负载均衡 。ldirectord主要用途包括:
- 负载均衡:ldirectord可以基于不同的负载均衡算法进行请求分发,例如轮询、加权轮询、最少连接、源地址哈希等 。它可以将客户端请求分发到多个后端服务器中的一个或多个上,从而实现负载均衡 。
- 健康检查:ldirectord可以定期检查后端服务器的可用性,并将不可用的服务器从服务池中排除,从而确保服务的高可用性和稳定性 。
- 会话保持:ldirectord可以根据客户端的IP地址、Cookie等标识,将客户端请求路由到相同的后端服务器上,从而实现会话保持,确保客户端与后端服务器之间的连接不会被中断 。
- 动态配置:ldirectord支持动态添加、删除、修改后端服务器和服务,管理员可以通过命令行或配置文件等方式进行操作,从而实现动态配置 。
2、安装规划MySQL及MySQL Router版本均为8.0.32
主机名
安装组件
使用端口
172.17.140.25
gdb1
MySQL
MySQL Router
ipvsadm
ldirectord
pcs
【MySQL Router高可用搭建,你学会了吗?】pacemaker
corosync
MySQL:3309
MySQL Router:6446
MySQL Router:6447
pcs_tcp:13314
pcs_udp:13315
172.17.140.24
gdb2
MySQL
MySQL Router
ipvsadm
ldirectord
pcs
pacemaker
corosync
MySQL:3309
MySQL Router:6446
MySQL Router:6447
pcs_tcp:13314
pcs_udp:13315
172.17.139.164
推荐阅读
- 在 Meta 构建和部署 MySQL Raft
- mysql的3种安装方式及yum安装MySQL的步骤
- windows环境mysql自动备份脚本
- 一线大厂面试的MySQL索引夺命连环15问
- 在 MySQL 中处理时间
- TiDB与MySQL的SQL差异及执行计划简析
- 带你读 MySQL 源码:Select *
- MySQL 中时间函数详解,及加减计算总结和使用!
- MySQL索引数据结构入门
- 我们一起聊聊MySQL中的游标,你学会了吗?