目录
从数据库主从角度
一般业内的数据集群规模都是一主多从
主提供写操作支持,从通过消费binlog转为relay log 同步数据
如果只有一个主,又要扛读流量,又要扛写流量,压力比较大
如果有多个主同时对外提供写的话,会有数据不一致的问题,需要有额外的逻辑去处理数据同步的问题
除非向redis那样分片路由,多个分片提供读写。
一般Mysql数据库的拓扑都是一主多从。
我们可以业务代码中指定读从库
Mysql读写分离还会引入一个问题,那就是主从延迟
所以也不要一股脑读从,也要根据业务场景选择读主还是读从
从主表读表角度
这个是啥意思呢?
就是说业务流量落主表后,核心逻辑都是以主表来做的。
我们异步的去落一个表,这个表只用来读,举个例子比如说用户查看今天下了多少订单,就读读表,
那订单的履约和状态的流转推进等核心逻辑就基于主表。
从写持久化读缓存角度
写操作需要持久到磁盘,落db
那我们的读逻辑没必要没有必要抵达db
可以在db上层包memcached,memcached上面包本地缓存
那么读流量都读上层的缓存,扛住高并发读,减少了db的压力
从CQRS角度
CQRS 是读写分离架构
写流量流经domain领域层
读流量直接抵达inf持久层
转载请注明:汪明鑫的个人博客 » 从不同角度看读写分离
说点什么
您将是第一位评论人!