一个成熟的大型独立商城网站(如淘宝,天猫,腾讯等)的系统架构在设计之初并没有完全高性能,高可用性,高扩展性等,它随着用户数量的增加而增加。业务功能的扩展已逐渐发展。在这个过程中,开发模型,技术架构和设计思想也发生了很大的变化。甚至技术人员也从几个人发展到一个部门甚至一个产品线。因此,随着业务的扩展,成熟的在线电子市场系统架构逐渐得到改善,而不是一次性的。
不同的系统业务特点,会有自己的重点,比如淘宝,解决大量搜索,订购,支付腾讯等,解决数亿用户的实时短信传输,百度它有处理大量搜索请求时,它们都有自己的业务特征,而且系统架构也不同。但是,我们也可以找到这些不同电子商务网站共享的技术。这些技术和手段广泛用于大型网站系统的体系结构中。以下是大型网站系统演变过程的介绍。技术和手段。
首先,最初的网站架构原始体系结构,应用程序,数据库和文件都部署在单个服务器上,如图所示:
二,应用程序,数据,文件分离
随着服务的扩展,一台服务器无法再满足性能要求。因此,应用程序,数据库和文件都部署在单独的服务器上,并根据服务器的目的配置不同的硬件以实现最佳性能。
第三,使用缓存来提高网站性能
在优化硬件性能的同时,它还通过软件优化性能。在大多数网站系统中,缓存技术用于提高系统性能。缓存主要源于热数据的存在。大多数网站遵循28条原则。 (即80%的访问请求,最终落在20%的数据上),因此我们可以缓存热点数据,减少这些数据的访问路径,并改善用户体验。
缓存实现的常用方法是本地缓存和分布式缓存。当然,还有CDN,反向代理等,这将在后面讨论。顾名思义,本地缓存在应用程序服务器上本地缓存数据,并且可以存在于内存中。 在中间,也可以有文件,OSCache是常用的本地缓存组件。本地缓存以其速度为特征,但由于局部空间有限,缓存数据量有限。分布式缓存的特点是它可以缓存大量数据,并且扩展非常容易。它通常用于门户网站。速度不如本地缓存快。常用的分布式缓存是Memcached和Redis。
第四,使用集群来提高应用服务器性能应用程序服务器充当网站的门户,并将承担大量请求。我们经常通过应用程序服务器集群共享请求数。应用服务器部署在负载均衡服务器前面,用于调度用户请求,并根据分发策略将请求分发到多个应用服务器节点。
常用的负载均衡技术硬件有F5,价格相对昂贵,软件有LVS,Nginx,HAProxy。 LVS是一个四层负载平衡。根据目标地址和端口选择内部服务器。 Nginx和HAProxy是七层负载平衡。可以根据数据包内容选择内部服务器。因此,LVS分布路径优于Nginx和HAProxy,性能更高。 Nginx和HAProxy更易于配置,例如可用于动态分离(根据请求消息特征选择静态资源服务器或应用程序服务器)。
五,数据库读写分离和子库表随着用户数量的增加,数据库成为最大的瓶颈。提高数据库性能的常用方法是执行读写分离和子数据库分区。顾名思义,数据库分为读写库,并实现主要和备份功能。数据同步。子库表分为水平分割和垂直分割,水平分割是数据库优秀表的分割,例如用户表。垂直分割根据不同的服务划分,例如用户业务和商品业务相关的表放在不同的数据库中。
第六,使用CDN和反向代理来提高网站性能
如果我们的服务器部署在成都的计算机房中,四川的用户访问速度更快,而且访问北京的用户速度较慢。这是因为四川和北京属于中国电信和中国联通的不同发达地区。北京用户接入需要通过互联路由器经过成都服务器的长路径,返回路径相同,所以数据传输时间比较长。在这种情况下,CDN通常用于解决问题。 CDN将数据内容缓存在运营商的计算机房中。当用户访问时,从最近的运营商获得数据,这极大地减少了网络访问的路径。更专业的CDN运营商拥有蓝色和网络。
反向代理部署在网站的网站上。当到达用户请求时,首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户。如果没有缓存数据,则继续访问应用程序服务器。少花钱可以降低获取数据的成本。反向代理是Squid,Nginx。
七,使用分布式文件系统
用户日益增多,业务量越来越大,生成的文件越来越多,单个文件服务器无法满足需求。此时,需要支持分布式文件系统。常用的分布式文件系统是GFS,HDFS和TFS。
八,使用NoSql和搜索引擎
对于海量数据的查询和分析,我们可以通过使用nosql数据库和搜索引擎来获得更好的性能。并非所有数据都放在关系数据中。常用的NOSQL是mongodb,hbase,redis,搜索引擎有lucene,solr和elasticsearch。
九,应用服务器拆分业务
随着业务的进一步扩展,独立的b2b2c商城系统3应用程序变得非常臃肿。目前,我们需要将应用程序拆分为业务。例如,百度分为新闻,网页,图片和其他服务。每个业务应用程序负责相对独立的业务操作。企业通过消息或共享数据库进行通信。
X.构建分布式服务
此时,我们发现每个业务应用程序都使用一些基本的业务服务,例如用户服务,订单服务,支付服务和安全服务,它们是支持每个业务应用程序的基本元素。我们提取这些服务并使用分布式服务框架来构建分布式服务。 Ali's Dubbo是个不错的选择。
摘要
根据业务需求不断改进大型网站系统的架构。根据不同的业务特点,将进行具体的设计和考虑。本文仅介绍常规大型网站中涉及的一些技术和方法。
资料来源:CDSN
随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,ShopSuite为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。