像淘宝、京东这样的大型电商网站服务器构架完全部署解决方案

news/2024/5/9 16:40:58/文章来源:https://blog.csdn.net/weixin_33798152/article/details/86442997

任何一个大型网站都是经历用户积累然后成长,从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其中共用的技术,这些技术和手段可以广泛运行在大型网站系统的架构中,下面就通过介绍大型网站系统的演化过程,来认识这些技术和手段。

 

       一、最开始的网站架构 最初的架构,应用程序、数据库、文件都部署在一台服务器上,如图:

 

  二、应用、数据、文件分离 随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。

 

 

  三、利用缓存改善网站性能 在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循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。

七、使用分布式文件系统 用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求。需要分布式的文件系统支撑。常用的分布式文件系统有NFS。

 

  八、使用NoSql和搜索引擎 对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。

 

 

  九、将应用服务器进行业务拆分 随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。

 

 

  十、搭建分布式服务 这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择。

 

 

  大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_737457.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

响应式设计工具网站mydevice.io

1、网址 https://mydevice.io/ 2、使用 在mydevice.io上有常见智能手机,PC电脑的尺寸。

高清图片免费素材网站分享

这3个资源强大的图片素材网站!知乎大佬强烈推荐,再也不怕高清配图难找! 有效的进行搜索图片就可以大大提高你的工作效率,所以今天跟大家分享3个图片素材网站。可以免费下载高清图片! Hippopx 官网地址:h…

大型网站架构演变和知识体系 附带图片

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而 没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什…

[转]大型高性能网站的十项规则

在我们公司ChinaNetCloud,见 过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的 问题,不能良好运行,也无法…

[转]LAMP网站架构方案分析

LAMP(Linux-Apache-MySQL- PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者 Python编程语言,所有组成产品均是开源软件…

百万流量网站架构

最近设计一个网站,设计目标是百万访问量. 做了一些架构的设计. 同时对二期架构进行了展望<script typetext/javascript charsetutf-8 src"http://static.bshare.cn/b/buttonLite.js#style-1&uuid&pophcol3&langzh"></script> <script t…

[转]高并发高流量网站架构设计(参考)

高并发高流量网站架构设计&#xff08;参考&#xff09; 2009-11-24 16:19:58 来自: sharp(follow my heart) 目 录 1引言9 1.1互联网的发展9 1.2互联网网站建设的新趋势9 1.3新浪播客的简介11 2网络层架构12 2.1镜像网站技术12 2.2 CDN内容分发网络13 2.3应用层分布式设计1…

安全机构 abuse.ch 公布近10万个恶意网站

百度智能云 云生态狂欢季 热门云产品1折起>>> 据官方博客文章&#xff0c;2018 年 3 月底&#xff0c;非盈利安全机构 abuse.ch 运行了一个名为 URLhaus 的项目。这个致力于收集和分享散布恶意软件的网站 URL 的项目取得了巨大的成功&#xff0c;URLhaus 在 10 个月…

php特级课---2、网站大数据如何存储

php特级课---2、网站大数据如何存储 一、总结 一句话总结&#xff1a; mysql主从&#xff0c;分库分表&#xff0c;mysql分区&#xff0c;mysql集群&#xff0c;Nosql 1、mysql主从服务器各自的功能是什么&#xff1f; 增删改&#xff0c;主服务器 查询&#xff0c;备份&#x…

网站安装打包 软件环境检测与安装[二] 上

2019独角兽企业重金招聘Python工程师标准>>> 这一节主要讲检测&#xff0c;下一节讲安装! 一个C#制作完的工具一运行&#xff0c;一个可以不用检测与安装的就是framework环境了,要是没这东西&#xff0c;也运行不起来。 这里提供几个检测的范围&#xff1a; 一.检测…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书&#xff0c;就应该有所收获&#xff0c;有所总结&#xff0c;最近把《大型网站技术架构》一书给看完了&#xff0c;给人的印象实在深刻&#xff0c;再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

12 个免费的 Deep Learning 在线学习网站

转载自&#xff1a;https://zhuanlan.zhihu.com/p/26501934 欢迎留言交流~~~ Deep Learning 改变着世界&#xff0c;各种利用 DL 的技术已经开始服务人类&#xff1a; 发现癌症&#xff08;准确率远超人类病理学家&#xff0c;Google 用深度学习算法检测癌症 &#xff09;、 图…

网站访问量怎么刷_网站建设怎么获得访问量?

一、圈子里宣传在网站建设完成之后&#xff0c;企业可以将网站转发到一些平台上&#xff0c;尤其是聊天软件。这样通过人与人之间的转发&#xff0c;能够小范围提高网站访问量。也可以发到空间或者朋友圈&#xff0c;甚至一些社交平台上&#xff0c;利用自己的人脉迅速让一个小…

Python实战项目之博客网站搭建

参考&#xff1a;廖雪峰网站 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 http://blog.csdn.net/lm409/article/details/63687293 Day 1 - 搭建开发环境 搭建开发环境 首先&#xff0c;确认系统安装的Python版本是3.5.x&#xf…

Google 联合一些社交网站来对抗 facebook

谷歌(Google) 将与其它一些行业领先的社交网站联手&#xff0c;共同对抗互联网新贵Facebook。  谷歌将于周四推出一个通用标准集 ( OpenSocial )&#xff0c;允许软件开发者为谷歌旗下社交网站Orkut&#xff0c;以及LinkedIn、hi5、Friendster、Plaxo和Ning等其它社交网站开…

png压缩,jpg压缩不错的网站推荐

https://tinypng.com/ 这个网址对于手动批量压缩png和jpg挺不错的&#xff0c;mark一下。虽然用了多年&#xff0c;还是觉得不错。

使用开源WordPress和WebStack搭建导航网站

目录 一、前言 二、WordPress和WebStack简介 三、安装与部署 1. 服务器环境搭建LNMP 1.1 购买Linux服务器 1.2 安装Nginx 1.3 安装MariaDB 1.4 安装PHP 2. 安装WordPress 2.1 配置数据库 2.2 下载WordPress源文件 2.3 安装WordPress 3. 安装WebStack主题 四、Web…

盘点Web2.0峰会-社交网站领风骚

网易科技 讯 10月23日消息&#xff0c;美国第六届Web2.0峰会&#xff08;Web2.0 Summit 2009 &#xff09; 于当地时间10月20日-10月22日在旧金山举行。本届Web2.0峰会的主题是“Web Squared”&#xff0c;意思是说&#xff1a;Web2.0应用、技术和网站已经不仅仅是一组创新的网…

鄙视这些垃圾网站,居然篡改俺的注册表,实在气愤

不知是哪天&#xff0c;同事拿我本本上网下东西&#xff0c;可能是下什么东西吧&#xff0c;上了verycd。265。com&#xff08;为了不给它出现连接的机会故意把.改为。&#xff09;居然把我注册表都修改了&#xff0c;着实气愤&#xff0c;&#xff0c;而且在ie选项的主页设置里…

网站已死 互联网永生

从诞生到现在&#xff0c;网站已经走过了20个年头。相比当年的流行&#xff0c;如今它已经开始衰落&#xff0c;逐渐让位于更简单且时髦的智能应用。这些应用更关注的不是搜索效果&#xff0c;而是信息获取。克莱斯安德森(Chris Anderson)向我们解释了这些新应用所反映的资本聚…