大部分所谓架构文章都会先介绍分库分表,再扛不住就读写分离对吧。
但没人往下讲细节了。
如果是异步同步,可以保证写主库成功之后返回,但保证不了延迟。比如写完马上读就会有问题。
如果等待同步从库成功后再返回,实际就是双写。那么故障几率就更大了,可用性就会降低。
好吧我知道还有所谓“具体业务具体分析”,但实际上哪有那么多具体业务能忍受可用性降低或者同步延迟。就比如订单,钱不能算错,库存也不能错,但没听说过谁说用可用性来做 trade off 的。
我始终认为,提升系统容量,要有一套能撑得住的运维体系,然后一直分库分表就好了。所谓主从同步,是一个“高可用”方案,在主库挂掉的时候从库顶上。而不是 scale out 方案。
那,真正做过读写分离方案的,到底有多少?
但没人往下讲细节了。
如果是异步同步,可以保证写主库成功之后返回,但保证不了延迟。比如写完马上读就会有问题。
如果等待同步从库成功后再返回,实际就是双写。那么故障几率就更大了,可用性就会降低。
好吧我知道还有所谓“具体业务具体分析”,但实际上哪有那么多具体业务能忍受可用性降低或者同步延迟。就比如订单,钱不能算错,库存也不能错,但没听说过谁说用可用性来做 trade off 的。
我始终认为,提升系统容量,要有一套能撑得住的运维体系,然后一直分库分表就好了。所谓主从同步,是一个“高可用”方案,在主库挂掉的时候从库顶上。而不是 scale out 方案。
那,真正做过读写分离方案的,到底有多少?