简介
1、 从MySQL的主从复制和读写分离,到ZooKeeper分布式协调服务,再到Kafka消息中间件和Nginx的代理功能,此功能主要同步各个主机之间的配置文件和一些重要的信息,方便运维人员不用再从每个机器上来更改信息,只需要注册了监听机器IP就能实现同步。
2、Kafka消息中间件主要是为了防止消息锁死,方便用户随用随取。
3、Nginx在本章主要实现了代理作用,其实Nginx的功能很多,譬如负载均衡、web服务、缓存等,现在很多企业都在使用这个Nginx服务。
4、最后,介绍了Zabbix这个监控开源平台,该平台主要方便运维人员及时发现服务器问题和解决问题。

MySQL复制技术的特点
① 数据分布(Data distribution)
② 负载平衡(load balancing)
③ 备份(Backups)
④ 高可用性和容错行(High availability and failover)
主从复制的工作机制
① Master将改变记录到二进制日志(binary log)中,这些记录叫做二进制日志事件(binary log events); ② Slave将master的binary log events拷贝到它的中继日志(relay log); ③ Slave重做中继日志中的事件,将改变反映它自己的数据。
复制概述
MySQL内建的复制功能是构建大型、高性能应用程序的基础。
1、将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将MySQL的某一台主机的数据复制到其它主机(slave)上,并重新执行一遍来实现的。
2、复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引来跟踪日志循环。这些日志可以记录发送到从服务器的更新。
3、当一个从服务器连接主服务器时,它通知主服务器和从服务器在日志中读取最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
环境准备
规划节点
| IP | 主机名 | 节点 |
|---|---|---|
| 10.30.59.205 | db1 | MariaDB数据库集群主节点 |
| 10.30.59.215 | db2 | MariaDB数据库集群从节点 |
| 10.30.59.222 | mycat | Mycat中间件服务节点 |
2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负责写入数据库信息;另一台作为从节点,负责读取数据库信息。
使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库节点。这样将用户的访问操作、数据库的读与写操作分给3台主机,只有数据库集群的主节点接收增、删、改SQL语句,从节点接收查询语句,分担了主节点的查询压力。
修改主机名
[root@localhost ~]# hostnamectl set-hostname mycat
[root@localhost ~]# bash
[root@mycat ~]#
[root@localhost ~]# hostnamectl set-hostname db1
[root@localhost ~]# bash
[root@db1 ~]#
[root@localhost ~]# hostnamectl set-hostname db2
[root@localhost ~]# bash
[root@db2 ~]#
编辑hosts文件(在所有节点)
[root@db1 ~]# vi /etc/hosts
10.30.59.205 db1
10.30.59.215 db2
10.30.59.222 mycat
secureFX上传文件(所有节点)
[root@mycat ~]# ll
total 326660
-rw-------. 1 root root 1260 Mar 29 23:35 anaconda-ks.cfg
-rw-r--r--. 1 root root 318829093 Jun 18 11:01 gpmall-repo.tar.gz
-rw-r--r--. 1 root root 15662280 Jun 18 10:14 Mycat-server-1.6-RELEASE-20161028204710-linux .tar.gz
[root@db1 ~]# mv gpmall-repo.tar.gz /opt
[root@db1 ~]# cd /opt
[root@db1 ~]# ll
[root@db1 ~]# yum install -y unzip
[root@db1 ~]# unzip gpmall-repo.tar.gz
配置Yum安装源(所有节点)
[root@db1 ~]# cd /etc/yum.repos.d/
[root@db1 yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Apr 29 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 29 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Apr 29 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Apr 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29 2018 CentOS-Vault.repo
[root@db1 yum.repos.d]# mv /etc/yum.repos.d/C* /media/
[root@db1 yum.repos.d]# mkdir /opt/cdrom
[root@db1 yum.repos.d]# mount /dev/cdrom /opt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@db1 yum.repos.d]# vi /etc/yum.repos.d/local.repo
[mariadb]
name=mariadb
baseurl=file:///opt/gpmall-repo
gpgcheck=0
enabled=1
[cdrom] 本地yum源
name=cdrom
baseurl=file:///opt/cdrom
gpgcheck=0
enabled=1
[root@db1 yum.repos.d]# yum clean all
[root@db1 yum.repos.d]# yum repolist
关闭防火墙(所有节点)
[root@db1 ~]# systemctl stop firewalld
[root@db1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@db1 ~]# setenforce 0
[root@db1 ~]# iptables -F
[root@db1 ~]# iptables -X
[root@db1 ~]# iptables -Z
[root@db1 ~]# iptables-save
配置 ftp 连接另两个节点(在db1节点)
[root@db1 ~]# yum install -y vsftpd
[root@db1 ~]# vim /etc/vsftpd/vsftpd.conf
anon_root=/opt 添加此段
[root@db1 ~]# systemctl start vsftpd
[root@db1 ~

本文介绍如何利用Mycat实现MySQL主从复制及读写分离,包括环境准备、主从复制配置、Mycat服务部署及读写分离验证等步骤。
&spm=1001.2101.3001.5002&articleId=118014498&d=1&t=3&u=47668fc204a94466955c3db060e086bb)
343

被折叠的 条评论
为什么被折叠?



