设计数据库集群读写分离并非易事( 二 )
在binlog的复制过程中 , 极低的概率会发生binlog还没有来得及刷新到磁盘就出现磁盘坏掉或者down机的情况 , 最终的效果就是主从数据的不一致 , 但是这种不可抗拒的因素 , 一般是可以容忍的 。
还有一种现象 , 一般数据从主节点复制到从节点会开启单线程模式 , 如果主库产生新数据的速度大于同步的速度 , 那有可能会进一步加大主从同步的延迟时间 , 这个是否可以考虑开启多线程或者利用缓存模块来屏蔽同步延迟的问题呢?
主备方案说到数据库主从的架构部署方式 , 还有一种类似的方案:主备 。 主备是利用冗余一个节点来做备用节点 , 但是这个节点在主节点正常运行的情况下 , 不会对外提供服务 , 做了一个真正的“备胎” 。 当主节点挂掉 , 备用节点会代替主节点的位置 , 并成为主节点开始对外提供服务 。
主备方式可以利用简单的类似keepalive机制来实现自动化 , 理论上不需要进行选举操作 。 利用主备方式来实现数据库高可用有哪些特点呢?
- 可用性是利用keepalive机制来保证的 , 这个切换过程对业务是透明的 , 业务方无需修改任何代码
- 读写都在主库上进行 , 很容易产生单点的瓶颈问题 , 由于没有其他节点的数据同步过程 , 所以数据可以保证一致性
- 主备架构中 , 备库只是单纯的备份 , 整体的资源利用率50% , 因为备库一直在被闲置
- 扩展性比较差 , 无法做到横向扩展 , 但是可以利用分库分表来解决扩展性问题
写在最后数据库的扩展由于其属于有状态的范畴 , 所以比无状态的网站或者服务要困难很多 。 现在主流的落地方案也都是基于“分”的策略 , 分库分表方案和主从读写分离方案是两种最常用的扩展方式 , 在很多情况下 , 二者是结合起来使用的 , 即:在分库分表的情况下 , 每个节点采用主从读写分离的方式 , 这也是目前比较主流的方式了 。
作者:菜菜
【设计数据库集群读写分离并非易事】出处:
- 摄像头|摄像头造型别出心裁 realme全新手机设计专利曝光
- 设计师|苹果设计师主刀,OriginOS欲掀起“ 拟态化”设计风
- 设计语言|全新家族设计,三星Galaxy A32渲染图曝光
- 这场|这场顶级盛会,15位全球设计行业组织主席@烟台:中国创新经验从这里影响世界
- 建设|日海智能(002313.SZ)中标板障山山地步道项目线路一智慧化建设设计施工总承包项目
- 概念图|华为Mate50Pro概念图:这样的设计才叫豪横,感觉苹果要过气了
- 设计|未来创意拒绝被垄断:欧拉共创成果深度解读!
- 华为|华为P50系列曝光,满溢屏+挖孔设计,花粉还喜欢吗?
- 曝光|realme新机设计专利曝光 超小挖孔屏+椭圆形镜头
- 延续|疑似OPPO Reno5真机亮相 延续上代设计
