《从零开始学架构》三:高性能数据库

1 高性能数据库集群

1.1 读写分离

目的:分散数据库读写操作的压力

基本原理:将数据库读写操作分散到不同的节点上
在这里插入图片描述
复杂度:主从复制延迟分配机制

1.1.1 主从复制延迟

带来的问题:

如果业务服务器将数据写入到数据库主服务器后立刻(1 秒内)进行读取,此时读操作访问的是从机,主机还没有将数据复制过来,到从机读取数据是读不到最新数据的,业务上就可能出现问题。

常见解决方法:

1 写操作后的读操作指定发给数据库主服务器

2 读从机失败后再读一次主机

这就是“二次读取”;
二次读取和业务无绑定,只需要对底层数据库访问的 API 进行封装即可,实现代价较小;
不足之处在于如果有很多二次读取,将大大增加主机的读操作压力,也会一定的危险性,例如,黑客暴力破解账号,会导致大量的二次读取操作,主机可能顶不住读操作的压力从而崩溃。

3 关键业务读写操作全部指向主机,非关键业务采用读写分离

1.1.2 分配机制

将读写操作区分开来,然后访问不同的数据库服务器,一般有两种方式:程序代码封装中间件封装

  • 程序代码封装(中间层封装)

程序代码封装指在代码中抽象一个数据访问层,实现读写操作分离和数据库服务器连接的管理

基本架构:
在这里插入图片描述
特点:

1 实现简单,而且可以根据业务做较多定制化的功能。

2 每个编程语言都需要自己实现一次,无法通用,如果一个业务包含多个编程语言写的多个子系统,则重复开发的工作量比较大。

3 故障情况下,如果主从发生切换,则可能需要所有系统都修改配

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值