当前位置:网站首页>多主复制的适用场景(1)-多IDC
多主复制的适用场景(1)-多IDC
2022-07-31 15:27:00 【华为云】
3 多主复制
之前都是单主的主从复制架构,主从复制有个明显缺点:只有一个主节点,而所有写都必须通过它^iv。万一和主节点之间的网络中断而导致无法连接到主节点,主从复制方案就影响所有DB写入操作。
对主从复制模型进行扩展,则可配置多个主节点,每个主节点都能处理写,后面复制的流程类似:处理写的每个【主节点】都必须将该数据更改转发到所有其他节点 。这就是多主节点(也称为主-主,或主动/主动)复制。 此时,每个主节点还同时扮演其他主节点的从节点。
3.1 适用场景
在一个IDC内部使用多个主节点没啥大意义,因复杂性远超带来的好处。 但某些case,多活配置也合理:
3.1.1 多IDC
为容忍整个IDC级别故障或更接近用户,可将DB的副本横跨多个IDC。而若使用常规的主从复制模型,主节点必须位于其中一个IDC,且所有写请求都须经过该IDC。
有了多主节点复制模型,则能在每个IDC都配置主节点,如图-6所示基本架构:
- 在每个IDC内,采用主从复制
- IDC之间,由各个IDC的主节点负责和其它IDC的主节点进行数据交换、更新

比较多数据中心时,单主和多主:
性能
- 单活,每个写入须穿过互联网,进入主节点数据中心。这可能会大大增加写延迟,并违背设置多数据中心的初心(就近访问)
- 多活,每个写操作都能在本地IDC快速响应,然后采用异步复制将变化同步到其它IDC。因此,对上层应用有效屏蔽了IDC之间的网络延迟,使得终端用户所体验到的性能更好
容忍数据中心停机
主从复制下,若M所在IDC故障,必须切换至另一个IDC,将其中的1个从节点提升为M。多主模型中,每个IDC则可独立于其他IDC继续运行,发生故障的数据中心在恢复之后更新到最新状态。
容忍网络问题
IDC之间的通信通常经由广域网,大多不如IDC内的本地网络可靠。单主配置对这数据中心间的连接问题非常敏感,因为通过这个连接进行的写操作是同步的。采用异步复制功能的多活配置通常能更好地承受网络问题:临时的网络中断并不会妨碍正在处理的写入。
有些数据库默认情况下支持多主配置,但使用外部工具实现也很常见,如MySQL的Tungsten Replicator。
尽管多主复制有这些优势,但也有一个很大的缺点:两个不同IDC可能会同时修改相同的数据,写冲突必须解决(图-6中conflict resolution)。
由于多主复制在许多数据库中只是新增功能,所以还存在微妙的配置缺陷,与其他数据库功能如自增主键、触发器、完整性约束之间,交互有时会出现意外。因此,很多人觉得多主复制比较危险,应尽可能避免。
边栏推荐
- Ubantu project 4: xshell, XFTP connected the virtual machine and set xshell copy and paste the shortcut
- Visualize GraphQL schemas with GraphiQL
- 为什么毕业季不要表白?
- The normal form of the database (first normal form, second normal form, third normal form, BCNF normal form) "recommended collection"
- 更新数据表update
- R language test whether the sample conforms to normality (test whether the sample comes from a normally distributed population): shapiro.test function tests whether the sample conforms to the normal d
- R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值
- AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
- The R language ggstatsplot package ggbarstats function visualizes bar charts, and adds hypothesis test results (including sample number, statistics, effect size and its confidence interval, significan
- Why is the field of hacking almost filled with boys?
猜你喜欢
随机推荐
使用 GraphiQL 可视化 GraphQL 架构
TRACE32——C源码关联
How does automated testing create business value?
Bilateral filtering acceleration "recommended collection"
Visualize GraphQL schemas with GraphiQL
四象限时间管理有多好用?
BGP综合实验(建立对等体、路由反射器、联邦、路由宣告及聚合)
The normal form of the database (first normal form, second normal form, third normal form, BCNF normal form) "recommended collection"
Grafana安装后web打开报错
435. 无重叠区间
RecyclerView高效使用第三节
双边滤波加速「建议收藏」
NC | 中国农大草业学院杨高文组揭示发现多因子干扰会降低土壤微生物多样性的积极效应...
11 pinia use
定时器的类型
Insert into data table to insert data
TRACE32 - C source code association
三、数组
DBeaver连接MySQL 8.x时Public Key Retrieval is not allowed 错误解决
Precautions and solutions when SIGABRT error is reported









