我们以淘宝架构为例,了解下大型电商项目的服务端架构是怎样的,如图所示:
图中也有一些看不到,例如高可用的体现、实现双机房容灾和异地机房单元化部署,为淘宝业务提供稳定、高效和易于维护的基础架构支撑。
这是一个含金量非常高的架构,也是一个非常复杂而庞大的架构。当然这个架构不是一天两天演进而成,也不是一上来就设计并开发成这么高大上的。
因此,一个大型服务系统都是从一步一步走过来的,在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题,在这个过程中整个架构会一直演进。
从一个小网站说起。一台服务器也就足够了。文件服务器,数据库,还有应用都部署在一台机器,俗称ALL IN ONE。
随着我们用户越来越多,访问越来越大,硬盘、CPU、内存等都开始吃紧,一台服务器已经满足不了。这时看到下一步演进。
我们将数据服务和应用服务分离,给应用服务器配置更好的CPU和内存,给数据服务器配置更好更大的硬盘。
分离之后提高一定的可用性,例如Files Server挂了,我们还是可以操作应用和数据库等。
随着访问QPS越来越高,降低接口访问时间,提高服务性能和并发,成为了我们下一个目标,同时发现有很多业务数据不需要每次都从数据库获取。