摘要: 大型电商项目的服务端架构 我们以淘宝架构为例,了解下大型电商项目的服务端架构是怎样的,如图所示: 上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。 中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。
大型电商项目的服务端架构
我们以淘宝架构为例,了解下大型电商项目的服务端架构是怎样的,如图所示:
- 上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。
- 中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。
- 还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。
- 最下面是中间件服务,如MQS即队列服务,OCS即缓存服务等。
图中也有一些看不到,例如高可用的体现、实现双机房容灾和异地机房单元化部署,为淘宝业务提供稳定、高效和易于维护的基础架构支撑。
这是一个含金量非常高的架构,也是一个非常复杂而庞大的架构。当然这个架构不是一天两天演进而成,也不是一上来就设计并开发成这么高大上的。
这边我想说的是,小型公司要怎么做架构呢?对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后的网站架构会是一个怎样的状况。同时,如果系统初期就设计一个千万级并发的流量架构,也很难有公司可以支撑这个成本。
因此,一个大型服务系统都是从一步一步走过来的,在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题,在这个过程中整个架构会一直演进。
一、单服务器-俗称all in one
从一个小网站说起。一台服务器也就足够了。文件服务器,数据库,还有应用都部署在一台机器,俗称ALL IN ONE。
随着我们用户越来越多,访问越来越大,硬盘、CPU、内存等都开始吃紧,一台服务器已经满足不了。这时看到下一步演进。
二、数据服务与应用服务分离
我们将数据服务和应用服务分离,给应用服务器配置更好的CPU和内存,给数据服务器配置更好更大的硬盘。
分离之后提高一定的可用性,例如Files Server挂了,我们还是可以操作应用和数据库等。
随着访问QPS越来越高,降低接口访问时间,提高服务性能和并发,成为了我们下一个目标,同时发现有很多业务数据不需要每次都从数据库获取。
三、使用缓存