架构设计(二):数据库复制
2023-02-18 16:35:24 时间
架构设计(二):数据库复制
作者:Grey
原文地址:
在架构设计(一):从单服务器模式到负载均衡设计中提到了数据库类型的选择,
针对大数据量,高可用的场景,数据库复制是一种比较好的方式,其中多个数据库实例之间可以是主/从关系。
主数据库通常只支持写操作。从数据库从主数据库获得数据的副本,只支持读操作。所有修改数据的命令,如插入、删除或更新,必须发送到主数据库。大多数
应用要求的读和写的比例要高得多;因此,系统中的从属数据库的数量通常比主数据库的数量多。以下是主/从数据库架构的示例图。
以上架构的优势是
-
更好的性能。在主从模式中,所有的写和更新都发生在主节点;而读操作则分布在从节点上。这种模式提高了性能,因为它允许更多的查询被并行处理。
-
可靠性。如果你的一个数据库服务器被自然灾害摧毁,数据仍然被保存下来。不需要担心数据丢失,因为数据是在多个地点复制的。
-
高可用性。通过在不同地点复制数据,即使一个数据库脱机,网站仍然可以运行,因为你可以访问存储在另一个数据库服务器的数据。
以上架构中,存在某个数据库服务挂了的情况,有如下两种情况
-
某个从数据库挂了,这个时候,如果是还有其他从数据库可用的情况下,读取操作将被重定向到其他健康的从数据库,但是如果挂掉的是唯一的一个从数据库的话,读操作会被暂时引导到主数据库。
-
某个主数据库挂了,那么一个从数据库将被提升为新的主数据库。所有的数据库操作将暂时在新的主数据库上执行。
结合架构设计(一):从单服务器模式到负载均衡设计中的架构图,增加数据库复制内容以后,整个系统架构设计如下
参考资料
相关文章
- 基于webgl(threejs)的路面编辑
- 通过canvas计算任意两个颜色的插值
- 给面试者的一点建议
- YoloV5实战:手把手教物体检测
- 详解CNN实现中文文本分类过程
- 使用污点分析检查log4j问题
- 带你掌握Visual Studio Code的格式化程序
- 云图说|分布式事务管理DTM:“买买买”背后的小帮手
- 用户登录功能:说简单也困难
- 手写一个线程池,带你学习ThreadPoolExecutor线程池实现原理
- 动态加载不适合数组类?那如何动态加载一个数组类?
- 一文详解Kafka API
- 语义级代码克隆检测数据集的评估与改进
- 一文带你了解数仓智能运维框架
- 一起玩转LiteOS组件:Pixman
- 不会用SpringBoot连接Redis,那就赶紧看这篇
- 带你读AI论文:NDSS2020 UNICORN: Runtime Provenance-Based Detector
- 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理
- 教你从零搭建Web漏洞靶场OWASP Benchmark
- 鸿蒙轻内核源码分析:文件系统FatFS