【赵渝强老师】MySQL集群解决方案

简介: MySQL主从与主主复制集群可实现数据同步、读写分离及高可用。主从复制支持一主多从,提升性能与安全;主主复制则互为备份,双向同步,适用于高并发场景,增强系统可靠性与扩展性。

1.png

在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题了。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。但是在搭建MySQL集群之前,必须要保证每台MySQL服务器里的数据同步。数据同步可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。视频讲解如下:


一、 MySQL的主从复制集群


MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。主从复制(也称AB复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。根据参数文件的配置,可以复制数据库中的所有数据库,所选数据库甚至选定的表。 MySQL的一主多从的架构如下图所示:

image.png


MySQL中复制的优点包括:

  • 横向扩展:在多个从站之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显着提高了越来越多的从设备的读取速度。
  • 数据安全性:因为数据被复制到从站,并且从站可以暂停复制过程,所以可以在从站上运行备份服务而不会破坏相应的主数据。
  • 任务分离:可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能。
  • 远程数据分发:您可以使用复制为远程站点创建数据的本地副本,而无需永久访问主服务器。


如果一主多从的话,这时主库既要负责写入数据又要负责为几个从库提供二进制日志。当从库节点比较多的时候,可能会对主库造成一定的读写压力。因此此时可以稍做调整,将二进制日志只给某一个从库。该从库再开启二进制日志并将自己的二进制日志再发给其它从库。这样架构起来性能可能要好得多,而且数据之间的延时应该也稍微要好一些。改进后的MySQL主从架构如下图所示。

image.png


二、 MySQL的主主复制集群


MySQL的主从复制可以将主节点的变更通过binlog同步到从节点上从而实现数据的同步,其本质其实就是备份的一种方式。但是主从复制只能完成从主节点到从节点的同步,并不能完成从节点到主节点的同步。换句话说,从节点如果对数据进行了变更,将无法同步到主节点上。为了解决这样的问题MySQL便提供了主主复制的功能。


MySQL主主复制也是MySQL备份的一种方式。所谓主主复制其实也就是两天MySQL服务器互为主从复制的关系。每一个台MySQL服务器既是主节点master,也是另一台MySQL服务器的从节点slave。在主主复制的架构中,任何一方所做的变更都会同步到另一方的MySQL数据库服务器中。因此,MySQL的主主复制其实也就是主从复制的一种扩展,下图展示了MySQL主主复制的基本架构。

image.png

相关文章
|
监控 网络协议 Java
《Java工程师成神之路》阿里技术专家之作,囊括Java所有知识点!
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么。
|
10月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
903 6
|
9月前
|
数据采集 前端开发 Java
职责分离的艺术:剖析主从Reactor模型如何实现极致的并发性能
Reactor单线程模型中,I/O操作由单一线程处理,但业务逻辑若同步执行会阻塞线程,影响性能。为此,引入工作者线程池模型,将非I/O任务剥离至独立线程池,提升响应速度。进一步发展为主从多线程模型:MainReactor处理连接建立,SubReactor多线程管理读写,并结合过滤器链实现数据预处理,异步编程提升并发效率。该架构职责分明、扩展性强,广泛应用于Netty等高性能框架,支持百万级并发。
422 11
|
9月前
|
Kubernetes 关系型数据库 MySQL
【赵渝强老师】使用Helm简化Kubernetes(K8s)应用的部署和管理
Helm是Kubernetes的应用包管理工具,可简化应用部署与管理。通过Chart模板定义应用配置,支持快速安装、升级和卸载。本文介绍Helm核心概念、部署方法,并实战演示部署MySQL和创建自定义Nginx Chart。
782 3
|
9月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle数据库的PL/SQL编程语言
PL/SQL是Oracle对SQL的扩展,结合过程化编程特性,支持开发存储过程、函数和触发器。本文介绍其基本结构,并演示如何在SQL*Plus中编写“Hello World”程序,需启用serveroutput输出。也可使用Oracle SQL Developer更高效地开发调试PL/SQL应用。
260 3
|
10月前
|
数据采集 缓存 大数据
【赵渝强老师】大数据日志采集引擎Flume
Apache Flume 是一个分布式、可靠的数据采集系统,支持从多种数据源收集日志信息,并传输至指定目的地。其核心架构由Source、Channel、Sink三组件构成,通过Event封装数据,保障高效与可靠传输。
523 1
|
9月前
|
NoSQL 测试技术 Redis
【赵渝强老师】Redis数据的迁移
Redis提供move、dump+restore和migrate三种方式实现数据迁移。move用于库内迁移,dump+restore跨实例传输,migrate则原子性地完成键的迁移与删除,支持多键批量操作,提升效率。
430 5
|
9月前
|
人工智能 自然语言处理 算法
2025年11月,数字人平台排行与数字化应用选择指南
数字人企业正引领未来产业新蓝海,AI交互与场景落地,推动数字人从概念走向规模化应用,重塑金融、教育、元宇宙等多领域生态,开启虚实融合的全新篇章。
|
9月前
|
SQL 存储 Oracle
Oracle 数据库对象管理:表空间与表的操作
表空间和表的管理,是 Oracle 数据库日常维护里的基础操作。这篇文章从创建、修改到删除,一步步带你熟悉如何控制数据的“住址”和结构布局,还搭配了实用练习题,帮助你在实战中加深理解,学完就能自己动手建表了!
673 1