本篇介绍了MySQL组复制,然后简述了搭建过程
MGR简介
MySQL Group Replication MySQL组复制,简称MGR,是MySQL官方推出的一个MySQL集群的其中一个方案,其特点是允许创建最多9个节点、最少3个节点的集群,有2种模式:单主多从、多主多从,其中,Primary主节点负责读写,Secondary从节点负责读,当Primary节点宕机,其他节点会自动推举出一台作为新的Primary。
搭建MySQL Group Replication
-
本文搭建的MGR集群是3节点,1主2从。
-
1.创建一个虚拟机:
①配置网络,执行yum update,安装好mysql5.7.30,修改参数: packet
②配置好hosts中的各主机ip、唯一主机名,
③关闭防火墙、selinux,
④创建mysql的复制用户、然后在group_replication_recovery这复制渠道中使用新创建的用户
⑤安装组复制插件
- 2.克隆mysql虚拟机3台
- 3.修改/var/lib/mysql/auto.cnf的UUID,可以用 select uuid() 生成。
- 4.修改/etc/my.cnf:server-id、loose-group_replication_local_address、report_host
- 5.然后再参考 https://tmcdcgeek.club/2019/05/24/mgr_haproxy/、https://www.cnblogs.com/kevingrace/p/10470226.html安装
问题解决
报错: 2个节点都是Recoverying,后来重启了master的group_replication(需要3个命令再走一遍),再重启2个节点就好了。
备注
停止原先master的mysqld服务后,发现新的master变成了原先的一个slave,然后再启动原先master的mysqld服务,启动grouop_replication,变成了新的slave。
搭建Consul
Consul是一个分布式服务发现与配置工具。onsul内置有KV存储, 服务注册/发现, 健康检查, HTTP+DNS API, Web UI等多种功能。与zookeeper类似。
- 参考:https://www.cnblogs.com/gomysql/p/8010552.html
搭建过程比较复杂,还需要配置检查脚本,这里就不详述了。 - 访问Consul WebUI:
可以看到192.168.176.41开启了write服务,其他两个节点是read服务 - 说明:
最终搭建的Consul并不完善,因为无法按博客中通过 服务域名 访问到mysql的读/读写服务,从WebUI中只能查看到3个节点的服务状态。可能是DNS配置有问题。