数据库主从一致性的几种解决方法
数据库主从⼀致性的⼏种解决⽅法
起源
现在基本所有的程序中都会⽤到数据库,⽽数据库其实就是对所有业务逻辑处理结果的保存,所以不论在什么情况下数据的丢失都不被允许的,最坏的情况也要最⼩化数据的丢失程度,所以⼀般情况下,数据源都会⾄少配有两个节点,⼀个业务处理使⽤的节点,⼀个甚⾄多个从节点,这些从节点就是我们常说的冷备,业务处理节点(主节点)和备份节点⼀定的时间间隔内进⾏数据同步,从⽽来保证当⼀个数据源坏掉之后,数据也不会丢失,或着丢失很少(主要看同步的时间间隔)。但是为了提⾼资源的使⽤效率,所以有⼈就提出了,可不可以让冷备也被利⽤起来,替主节点分担部分压⼒,所以就提出了读写分离的⽅案。
读写分离
读写分离提⾼了资源的利⽤效率的同时也引出了⼀个问题,就是由于延时(⽹络传输,操作)⽽引起的数据库主从不⼀致的问题,对于这个问题,给⼀下集中解决⽅案。
1-半同步复制
主从不⼀致的原因是延时引起的,所以要消除这个延时的影响,可以从主库进⾏CUD操作时进⾏规避,
办法就是等主从同步完成之后,主库上的写请求再返回,就是⼤家常说的“半同步复制”semi-sync。
请求请求主库主库从库从库CUD操作开始同步同步完成CUD操作完成
⽅案优点:利⽤数据库原⽣功能,⽐较简单
⽅案缺点:主库的写请求时延会增长,吞吐量会降低
2-数据库中间件
CUD操作
请求请求中间件中间件主库主库从库从库CUD操作路由同步
高速公路什么时候开始收费R操作
请求请求中间件中间件主库主库从库从库R操作同步未完成同步完成
⽅案优点:能保证绝对⼀致中国国旗的来历
⽅案缺点:数据库中间件的成本⽐较⾼
3-缓存记录写key法
CUD操作支付扣款顺序怎么设置
(1)将某个库上的某个key要发⽣写操作,记录在cache⾥,并设置“经验主从同步时间”的cache超时时间,例如500ms
(2)修改数据库
音乐风云榜年度盛典R操作
(1)先到cache⾥查看,对应库的对应key有没有相关数据
(2)如果cache hit,有相关数据,说明这个key上刚发⽣过写操作,此时需要将请求路由到主库读最新的数据汽车空调清洗
(3)如果cache miss,说明这个key上近期没有发⽣过写操作,此时将请求路由到从库,继续读写分离
现代植物小短诗⽅案优点:相对数据库中间件,成本较低
⽅案缺点:为了保证“⼀致性”,引⼊了⼀个cache组件,并且读写数据库时都多了⼀步cache操作

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。