上QQ阅读APP看书,第一时间看更新
2.5 小结
查询分离这个解决方案虽然能解决一些问题,但也要认识到它的不足。
1)使用Elasticsearch存储查询数据时,就要接受上面列出的一些局限性:有一定延时,深度分页不能自由跳页,会有丢数据的可能性。
2)主数据量越来越大后,写操作还是慢,到时还是会出问题。比如这里的工单数据,虽然已经去掉了所有外键,但是当数据量上亿的时候,插入还是会有问题。
3)主数据和查询数据不一致时,如果业务逻辑需要查询数据保持一致性呢?这里的查询数据同步到最新数据会有一定的延时,大约为2秒。某些业务场景下用户可能无法接受这个延时,特别是跟钱有关的场景。
架构“没有银弹”,不能期望一个解决方案既能覆盖所有的问题,还能实现最小的成本损耗。
如果碰到一个场景不能接受上面某个或某些不足时,该怎么解决?接着看后面的章节。