如何使用MySQL和Redis做集群部署
(1)问题分析
①为什么要做MySQL Redis集群部署, 集群部署的优点
②集群的缺点,考察你对数据库集群是否做过,是否理解的比较深
③Redis集群的类型
④考官主要考察搭建数据库集群并且部署,如MySQL和Redis集群的具体搭建并且如何部署到服务器上
(2)核心问题讲解
在讲解如MySQL如何搭建集群前,首先要了解MySQL集群优缺点。MySQL集群的优点主要有高可用性和灵活的分布式体系结构,没有单点故障,高吞吐量和低延迟,可扩展性强,支持在线扩容。但MySQL集群同样也有缺点。MySQL集群缺点主要有:存在很多限制,比如:不支持外键、部署、管理、配置很复杂、占用磁盘空间大、内存大、备份和恢复不方便、重启的时候,数据节点将数据 load 到内存需要很长的时间。
MySQL集群方案主要有 PXC方案和Repliaction 集群方案,下面对这两种方案进行介绍。
①PXC 集群方案( Percona XtraDB Cluster )
特性:速度慢、强一致性、高价值、订单、账户、财务
②Repliaction 集群方案
特性:速度快、弱一致性、低价值、日志、新闻、帖子
PXC方案和Replication方案对比
①先看看 PXC方案
很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写)。
②Replication 集群方案:
Replication方案只能在Master数据库进行写操作,在Slave数据库进行读操作。如果在Slave数据库中写入数据,Master数据库是不能知道的(单向同步的)。
③PXC 数据的强一致性
PXC 采用同步复制,事务在所有集群节点要么同时提交,要么不提交。
Replication 采用异步复制,无法保证数据的一致性。
④下面看看 PXC写入操作
当一个写入请求到达PXC集群中的一个 MySQL(node1数据库) 数据库时,node1数据库会将该写入请求同步给集群中的其他所有数据库,等待所有数据库都成功提交事务后,node1节点才会将写入成功的结果告诉给 node1的客户端。
PXC 的强一致性对保存高价值数据时特别重要。
⑤在看Replication集群写入操作:
当一个写入请求到达 Master数据库时,Master数据库执行写入操作,然后 Master 向客户端返回写入成功,同时异步的复制写入操作给 Slave数据库,如果异步复制时出现问题,从数据库将无法执行写入操作,而客户端得到的是写入成功。这也是弱一致性的体现。
(3)问题扩展
如何应对缓存穿透和缓存雪崩问题,部署过程中有没有出现问题?
(4)结合项目中使用
无