http://blog.51cto.com/hongchen99/1936473

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
1
2
3
4
5
mysql复制的优点:
     1 、数据分布
     2 、数据备份
     3 、负载均衡
     4 、提示高可用性


mysql/slave

wKiom1k9_iWCGdXvAAFKadhSYXs200.png












master/slave较为简单,master负责响应客户端的写请求,slave负责响应客户端的读请求

实现原理:

    slave在启动两个线程,i/o线程和sql线程,master启动dump线程,每当master的数据发生改变时,master就会将对应的SQL语句存储在二进制日志文件中,slave的通过i/o线程连接master的dump线程并每个一段时间就会向master询问二进制文件是否发生改变,如果二进制文件发生改变slave的i/o线程就会去读取二进制文件中发生改变的内容存储在本地的中继日志中并通过sql线程对中继日志的内容进行回放,并记录本次读取到的二进制文件位置,完成复制。

    

存在问题:

    1、master压力过大

    2、master宕机之后将无法完成用户写请求

    3、节点数据可能不一致

    4、默认使用异步复制方式

    5、延迟

     延迟的原因:

            1、 slave节点过多,master会为每个slave打开一个dump线程

            2、 并发写请求操作,由于mysql支持并发请求,如果多个写请求同时到达,将会将这些写操作都记录在二进制日志中,但在写入二进制文件时只能通过串行写入

            3、 slave通过i/o线程读取二进制文件并写入中继日志是也只能通过串行写入



master/master

    wKioL1k9_xrjiV4fAAH2vvIN1So334.png


master/master的出现正好解决了master/slave中如果master宕机之后用户的写请求无法完成的问题,但同时引入了比master/slave更多的问题,实现原理基本和master/slave相同,只需要在两台master中分别启动二进制日志和中继日志即可


注意问题:

    1、 避免主键重复

    2、 server-id全局唯一


存在问题:

    1、 经常出现两台master数据不一致(存在巨大风险)

    2、 主键冲突

    3、 延迟

    


级联复制

wKiom1k9_7iQGpVOAAHcuRx_k8o670.png

    

    在有些应用场景中,可能读写压力差别比较大,读压力特别的大,一个Master可能需要上10台甚至更多的Slave才能够支撑注读的压力。这时候,Master就会比较吃力了,因为仅仅连上来的SlaveIO线程就比较多了,这样写的压力稍微大一点的时候,Master端因为复制就会消耗较多的资源,很容易造成复制的延时。这时候我们就可以利用MySQL可以在Slave端记录复制所产生变更的BinaryLog信息的功能,也就是打开log_slave_update选项。然后,通过二级(或者是更多级别)复制来减少Master端因为复制所带来的压力。

    这种多层级联复制的架构,很容易就解决了Master端因为附属Slave太多而成为瓶颈的风险。

但下面阶级过多同一个变更传到最底层的Slave所需要经过的MySQL也会更多,同样可能造成延时较长的风险


存在问题:

    1、可能导致延迟更为严重

    2、借助于BlackHole存储引擎(黑洞引擎)



半同步复制

     mysql复制方式:

        异步:将二进制日志发送给slave不等待slave回应直接返回给客户端,数据储存成功

        同步:将二进制日志发送给slave等待所有slave回应执行成功后返回给客户端,数据储存成功

        半同步:将二进制日志发送给slave等待一个slave回应执行成功后返回给客户端,数据储存成功


本文转自  红尘世间  51CTO博客,原文链接:http://blog.51cto.com/hongchen99/1934414

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
641 22
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
13天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1044 110
人工智能 数据可视化 数据挖掘
235 0