图解常用的互联网架构体系

图解常用的互联网架构体系_第1张图片
如上图,个人整理出的通用架构层次图,每一层次都可以使用集群的形式增加稳定性与可用性。
从上到下层次鲜明,通常在高并发场景中,数据库是宝贵的资源,而且单个数据库实例是扛不住的,所以通常是mysql进行分库分表,这样的话问题就来了:
问题1:分布式事务如何解决?

常见的有XA,TCC,LCN,LTC解决方式,本篇这个不是重点

问题2:数据如何查询?

分库分表后,面临的一大问题就是如何查询数据,根据多个维度进行查询时,对数据库的性能以及数据的准确性就无法得到非常好的保障了,毕竟一个分页问题就可以搞得很复杂,所以,在这种情况下,检索层就发挥出作用了。将数据通过binlog读取的方式抛入MQ中,然后再将数据读入检索层,这层常用的就是ES了。这样查询的时候可以就可以非常高效,但是还是要注意下,由于检索层生成索引需要时间,所以查询的数据具有一定的延迟性。

从上到下,每一层都掌握的话,各种复杂的场景应对自如了。

你可能感兴趣的:(图解常用的互联网架构体系)