从程序员到架构师:大数据量、缓存、高并发、微服务、多团队协同等核心场景实战
上QQ阅读APP看书,第一时间看更新

2.5 小结

查询分离这个解决方案虽然能解决一些问题,但也要认识到它的不足。

1)使用Elasticsearch存储查询数据时,就要接受上面列出的一些局限性:有一定延时,深度分页不能自由跳页,会有丢数据的可能性。

2)主数据量越来越大后,写操作还是慢,到时还是会出问题。比如这里的工单数据,虽然已经去掉了所有外键,但是当数据量上亿的时候,插入还是会有问题。

3)主数据和查询数据不一致时,如果业务逻辑需要查询数据保持一致性呢?这里的查询数据同步到最新数据会有一定的延时,大约为2秒。某些业务场景下用户可能无法接受这个延时,特别是跟钱有关的场景。

架构“没有银弹”,不能期望一个解决方案既能覆盖所有的问题,还能实现最小的成本损耗。

如果碰到一个场景不能接受上面某个或某些不足时,该怎么解决?接着看后面的章节。