如何设计一个牛掰的大型项目架构?

来源:互联网 发布:js中校验身份证合法性 编辑:程序博客网 时间:2024/06/04 18:57

摘要: 大型电商项目的服务端架构    我们以淘宝架构为例,了解下大型电商项目的服务端架构是怎样的,如图所示:     上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。 中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。

大型电商项目的服务端架构

  


我们以淘宝架构为例,了解下大型电商项目的服务端架构是怎样的,如图所示:


20170504103023347.jpg


  • 上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。

  • 中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。

  • 还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。

  • 最下面是中间件服务,如MQS即队列服务,OCS即缓存服务等。


图中也有一些看不到,例如高可用的体现、实现双机房容灾和异地机房单元化部署,为淘宝业务提供稳定、高效和易于维护的基础架构支撑。


这是一个含金量非常高的架构,也是一个非常复杂而庞大的架构。当然这个架构不是一天两天演进而成,也不是一上来就设计并开发成这么高大上的。


这边我想说的是,小型公司要怎么做架构呢?对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后的网站架构会是一个怎样的状况。同时,如果系统初期就设计一个千万级并发的流量架构,也很难有公司可以支撑这个成本。


因此,一个大型服务系统都是从一步一步走过来的,在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题,在这个过程中整个架构会一直演进。


一、单服务器-俗称all in one


20170504103033825.jpg


从一个小网站说起。一台服务器也就足够了。文件服务器,数据库,还有应用都部署在一台机器,俗称ALL IN ONE。


随着我们用户越来越多,访问越来越大,硬盘、CPU、内存等都开始吃紧,一台服务器已经满足不了。这时看到下一步演进。


二、数据服务与应用服务分离


20170504103042626.jpg


我们将数据服务和应用服务分离,给应用服务器配置更好的CPU和内存,给数据服务器配置更好更大的硬盘。


分离之后提高一定的可用性,例如Files Server挂了,我们还是可以操作应用和数据库等。


随着访问QPS越来越高,降低接口访问时间,提高服务性能和并发,成为了我们下一个目标,同时发现有很多业务数据不需要每次都从数据库获取。


三、使用缓存

​​​​​​​

原文链接

原创粉丝点击