【干货】大型网站系统架构的演进

随商电商系统2021-01-12 10:50:11电商资讯

成熟的大型网站(如淘宝, 京东,等)的系统架构。)不具备高性能、高可用性、安全性等完整特征。它总是随着用户的增加和业务功能的拓展而不断演进和完善。在这个过程中,开发模式、技术架构、设计思路也发生了很大的变化,甚至技术人员从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的拓展而完善的,不是一蹴而就的;不同业务特性的系统会有各自的侧重点。

例如,在淘宝,必须解决搜索、下单和支付海量商品信息的问题。例如,在腾讯,需要解决数亿用户的实时消息传输问题。在百度,它必须处理大量的搜索请求。他们都有自己的业务特点,他们的电子商务平台建设架构也不同。然而,我们可以从这些不同的网站中找到共同的技术,这些技术可以广泛应用于大型网站系统的框架中。在这里,我们将介绍大型网站系统的演进过程,以了解这些技术和手段。

首先,最初的网站架构

在原始体系结构中,应用程序、数据库和文件都部署在一台服务器上,如图所示:

二、应用、数据、文件分离

随着业务的扩展,一台服务器已经不能满足性能要求。因此,应用程序、数据库和文件部署在独立的服务器上,并根据服务器的目的配置不同的硬件,以实现最佳性能。

第三,使用缓存提高网站性能

硬件优化性能的同时,也通过软件优化性能。在大多数网站系统中,缓存技术用于提高系统性能。缓存主要是因为热数据的存在。大多数网站访问遵循28原则(即80%的访问请求落在20%的数据上),所以我们可以缓存热点数据,减少这些数据的访问路径,提高用户体验。

实现缓存的常见方式有本地缓存和分布式缓存。当然还有CDN,反向代理等等,后面会讲到。本地缓存,顾名思义,在应用服务器上本地缓存数据,数据可以存在于内存或文件中。Oscar是一个常见的本地缓存组件。本地缓存的特点是速度快,但由于本地空间有限,缓存的数据量有限。分布式缓存的特点是可以缓存海量数据,易于扩展。常用于门户网站,速度不如本地缓存快。常用的分布式缓存有Memcached和Redis。

第四,使用集群来提高应用服务器的性能

应用服务器作为网站的门户,会承担大量的请求,我们经常通过应用服务器集群来分享请求的数量。部署在应用服务器前面的负载均衡服务器调度用户请求,并根据分发策略将请求分发到多个应用服务器节点。

常用的负载均衡技术硬件是F5,比较贵,软件是LVS,Nginx,HAProxy。LVS是四层负载均衡系统,根据目标地址和端口选择内部服务器,Nginx是七层负载均衡系统,HAProxy支持四层和七层负载均衡,可以根据消息内容选择内部服务器。因此,LVS分发路径优于性能更高的Nginx和HAProxy,而Nginx和HAProxy则更具可配置性,例如可用于动态和静态分离(根据请求消息特征选择静态资源服务器或应用服务器)。

5.数据库、子数据库、子表读写分离

随着用户数量的增加,数据库成为最大的瓶颈。提高数据库性能的常用方法是读写分离和表分离。读写分离顾名思义就是将数据库分为读写库和写写库,通过主备功能实现数据同步。子数据库和子表分为水平分割和垂直分割,水平切换是对数据库非常大的表进行拆分,比如用户表。垂直细分根据不同的业务进行切换,比如不同数据库中的用户业务和商品业务相关表。

第六,使用CDN和反向代理来提高网站性能

如果我们的服务器部署在成都,的计算机房,四川用户的访问速度更快,北京用户的访问速度更慢,这是因为四川和北京分别属于电信和联通,的不同发达地区。北京的用户需要通过互联路由器经过很长的路径访问成都的服务器,返回路径也是一样,所以数据传输时间比较长。在这种情况下,通常使用CDN来解决问题。CDN在运营商机房缓存数据内容,用户访问时先从最近的运营商获取数据,大大减少了网络访问路径。比较专业的CDN运营商是蓝迅和NetHosting。

反向代理部署在网站的机房。当用户的请求到达时,反向代理服务器将首先访问反向代理服务器,反向代理服务器将向用户返回缓存的数据。如果没有缓存的数据,会继续去应用服务器获取,也降低了获取数据的成本。反向代理是Squid和Nginx。

七、分布式文件系统的使用

用户日益增多,业务量不断增加,产生的文件越来越多,单一的文件服务器已经不能满足需求。它需要分布式文件系统支持。最常用的分布式文件系统是NFS。

八、使用NoSql和搜索引擎

对于海量数据查询,我们可以通过使用nosql数据库和搜索引擎来获得更好的性能。不是所有的数据都应该放在关系数据中。常用的NOSQL是mongodb和redis,搜索引擎是lucene。

九、应用服务器业务拆分

随着业务的进一步扩展,应用变得非常臃肿。这时候就需要把应用拆分成业务,比如新闻、网页、图片等业务。每个业务应用程序负责相对独立的业务操作。服务之间的通信是通过消息或共享数据库来实现的。

X.构建分布式服务

这时我们发现每个业务应用都会用到一些基本的业务服务,比如用户服务、订单服务、支付服务、安全服务,这些都是支撑每个业务应用的基本要素。我们提取这些服务,并通过使用部分服务框架来构建分布式服务。淘宝的杜博是个不错的选择。

总结

大型网站的架构会根据业务需求不断完善,会根据不同的业务特点进行具体的设计和考虑。本文仅描述常规大型网站所涉及的一些技术和手段。


随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,随商为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。

文章关键词  
电商网站开发
电子商务网站制作
购物商城系统

除了供应标准网上商城系统之外,我们还开源商城源码,为您提供电商平台开发定制服务

随商全新版PHP企业级电商平台系统,以客户需求为己任,提供免费网店系统源码给用户体验,为国内客户特别是上海周边客户提供电商平台及网上商城网站建设服务,您的商城开发建站需求,我们来实现!

网上商城建站
包含微信商城网站建设及小程序商城建设等一站式电商系统建站服务,java商城php商城 两种语言。
APP开发
提供APP商城开发,包含Android App 、iOS App等等, 原生APP品质
手机商城开发
提供APP商城、微信商、小程序、手机H5商城搭建及二次开发
电商平台开发
作为电子商务系统提供商,以自研的商城模板为企业提供专业的电商平台系统搭建服务

马上搭建自己的电商平台