大型网站架构技术一览

news/2024/5/13 17:40:31/文章来源:https://blog.csdn.net/weixin_34162629/article/details/86453788

http://www.hollischuang.com/archives/1132

本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。

网站系统架构层次如下图所示:

20150507171005663

1.前端架构

前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。

浏览器优化技术

并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存、合并HTTP减少请求次数、使用页面压缩等。

CDN

内容分发网络,部署在网络运营商机房,通过将静态页面内容分发到离用户最近最近的CDN服务器,使用户可以通过最短路径获取内容。

动静分离,静态资源独立部署

静态资源,如JS、CSS等文件部署在专门的服务器集群上,和Web应用动态内容服务分离,并使用专门的(二级)域名。

图片服务

图片不是指网站Logo、按钮图标等,这些文件属于上面提到的静态资源,应该和JS、CSS部署在一起。这里的图片指用户上传的图片,如产品图片、用户头像等,图片服务同样适用独立部署的图片服务器集群,并使用独立(二级)域名。

反向代理

部署在网站机房,在应用服务器、静态资源服务器、图片服务器之前,提供页面缓存服务。

DNS

域名服务,将域名解析成IP地址,利用DNS可以实现DNS负载均衡,配置CDN也需要修改DNS,使域名解析后指向CDN服务器。

2.应用层架构

应用层是处理网站主要业务逻辑的地方。

开发框架

网站业务是多变的,网站的大部分软件工程师都是在加班加点开发网站业务,一个好的开发框架至关重要。一个号的开发框架应该能够分离关注面,使美工、开发工程师可以各司其事,易于协作。同时还应该内置一些安全策略,防护Web用攻击。

页面渲染

将分别开发维护的动态内容和静态页面模板集成起来,组合成最终显示给用户的完整页面。

负载均衡

将多台应用服务器组成一个集群,通过负载均衡技术将用户请求分发到不同的服务器上,以应对大量用户同时访问时产生的高并发负载压力。

Session管理

为了实现高可用的应用服务器集群,应用服务器通常设计为无状态,不保存用户请求上下文信息,但是网站业务通常需要保持用户会话信息,需要专门的机制管理Session,使集群内甚至跨集群的应用服务器可以共享Session。

动态页面静态化

对于访问量特别大而更新又不很频繁的动态页面,可以将其静态化,即生成一个静态页面,利用静态页面的优化手段加速用户访问,如反向代理、CDN、浏览器缓存等。

业务拆分

将复杂而庞大的业务拆分开来,形成多个规模较小的产品,独立开发、部署、维护,除了降低系统耦合度,也便于数据库业务分库。按业务对关系数据库进行拆分,技术难度相对较小,而效果又相对较好。

虚拟化服务器

将一台物理服务器虚拟化成多态虚拟服务器,对于并发访问较低的业务,更容易用较少的资源构架高可用的应用服务器集群。

3.服务层架构

提供基础服务,供应用层调用,完成网站业务。

分布式消息

利用消息队列机制,实现业务和业务、业务和服务之间的异步消息发送及低耦合的业务关系。

分布式服务

提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构(SOA)。

分布式缓存

通过可伸缩的服务器集群提供大规模热点数据的缓存服务,是网站性能优化的重要手段。

分布式配置

系统运行需要配置许多参数,如果这些参数需要修改,比如分布式缓存集群加入新的缓存服务器,需要修改应用程序客户端的缓存服务器列表配置,并重启应用程序服务器。分布式配置在系统运行期提供配置动态推送服务,将配置修改实时推送到应用系统,无需重启服务器。

4.存储层架构

提供数据、文件的持久化存储访问与管理服务。

分布式文件

网站在线业务需要存储的文件大部分都是图片、网页、视频等比较小的文件,但是这些文件的数量非常庞大,而且通常都在持续增加,需要伸缩性设计比较好的分布式文件系统。

关系数据库

大部分万丈的主要业务是基于关系数据库开发的,但是关系数据库对集群伸缩性的支持表较差。通过在应用程序的数据访问层增加数据库访问的路由功能,根据业务配置将数据库访问路由到不同的物理数据库上,可实现关系数据库的分布式访问。

NoSQL数据库

目前各种NoSQL数据库层出不穷,在内存管理、数据模型、集群分布式管理等方面各有优势,不过从社区活动性角度看,HBase无疑是目前最好的。

数据同步

在支持全球范围内数据共享的分布式数据库技术成熟之前,拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心都拥有完整的数据。在实践中,为了减轻数据库压力,将数据库的事物日志(或者NoSQL的写操作Log)同步到其他数据中心,根据Log进行数据重演,实现数据同步。

5.后台架构

网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理。

搜索引擎

即使是网站内部的搜索引擎,也需要进行数据增量更新及全量更新、构建索引等。这些操作通过后台系统定时执行。

数据仓库

根据离线数据,提供数据分析与数据挖掘服务。

推荐系统

社交网站及购物网站通过挖掘人与人之间的关系,人和商品之间的关系,发展潜在的人际关系和购物兴趣,为用户提供个性化推荐服务。

6.数据采集与监控

监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障。

浏览器数据采集

通过在网站页面中嵌入JS脚本采集用户浏览器环境与操作记录,分析用户行为。

服务器业务数据采集

服务器业务数据包括两种,一种是采集在服务器端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等。

服务器性能数据采集

采集服务器性能数据,如系统负载、内存使用率、网卡流量等。

系统监控

将前述采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况,做到这一步仅仅是系统监视。更先进的做法是根据采集的数据进行自动化运维,自动处理系统异常状况,是吸纳自动化控制。

系统报警

如果采集来的数据超过预设的正常情况的阀值,比如系统负载过高,就通过邮件、短信、语音电话等方式发出警报信号,等待工程师干预。

7.安全架构

保护网站免遭攻击及敏感信息泄露。

Web攻击

以HTTP请求的方式发起的攻击,危害最大的就是XSS和SQL注入攻击。但是只要措施得当,这两种攻击都是比较容易防范的。

数据保护

敏感信息加密传输与存储,保护网站和用户资产。

8.数据中心机房架构

大型网站需要的服务器规模数以十万计,机房物理架构也需要关注。

机房架构

对于一个拥有十万台服务器的大型网站,每台服务器耗电(包括服务器本身耗电及空调耗电)每年大约需要人民币2000元,那么网站每年机房电费就需要两亿人民币。数据中心能耗问题日趋严重,Google、Facebook选择数据中心地理位置的时候趋向选择散热良好,供电充裕的地方。

机柜架构

包括机柜大小,网线布局、指示灯规格、不间断电源、电压规格(是48V直流电还是220V民用交流电)等一系列问题。

服务器架构

大型网站由于服务器采购规模庞大,大都采用定制服务器的方式代替购买服务器整机。根据网站应用需求,定制硬盘、内存、甚至CPU,同时去除不必要的外设接口(显示器输出接口,鼠标、键盘输入接口),并使空间结构利于散热。

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

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

相关文章

公民信息黑产报价单曝光 网站成泄露隐私重灾区

私家侦探及地下要债公司幕后推高公民信息售价,电商、游戏等网站成泄露隐私重灾区 进入3月以来,陌生骚扰来电进入高发期。一边是各地公安机关不断加大严打力度,另一边是被捣毁地下黑产窝点规模依然在不断壮大。 而类似的诈骗行为之所以屡禁不止…

[Ajax]十个优秀的 Ajax/Javascript实例网站

原始地址:http://supercode.appspot.com/post/13 1.Ajax Rain AjaxRain有很多完美整合AJAX, CSS, DHTML 或 Javascript的实例,有一些Demo的确值得你去看一看,即使你不是网页设计(开发)师。 2.Ajax Daddy Ajax Daddy收集了大量漂亮的Web2.0工…

第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示...

第三百八十七节,DjangoXadmin打造上线标准的在线教育平台—网站上传资源的配置与显示 首先了解一下static静态文件与上传资源的区别,static静态文件里面一般防止的我们网站样式的文件,包括ccs,js,网站样式图片 上传资源…

PHP网站http替换https

PHP网站http替换https

百度搜索重心,从网站到到熊掌号,流量品牌互动,企业主的新选择

22日百度联盟熊掌号分论坛上百度高管针对熊掌号发展及其未来走向给了明确说明,对于应对网站优化网站效果排名来说SEO们的未来可期。 过去的半年,是百度搜索发生剧烈变化的半年,在过去的时代中,百度搜索索引的是一个个网站、站点&a…

https 免费证书获得了,怎样配置呀,为什么我的网站还是http呢

https 免费证书获得了,怎样配置呀,为什么我的网站还是http呢 推荐一个免费的阿里云产品:云盾证书(https证书) 为了能让非专业人士看懂,同样尽量用直白的话,一般来说:当你个人需要建立网站,或者公…

安装宝塔,并创建站点

宝塔面板分linux面板和windows面板,安装宝塔linux面板首先要访问宝塔官网查看对应版本进行选择 宝塔面板的安装需要注意的地方有: 1.纯净系统 2.确保是干净的操作系统,没有安装过其它环境带的Apache/Nginx/php/MySQL,否则安装不…

SQLserver中优化动易网站实例

在SQL server中我们已经了解到了分析顾问的强大之处,利用这个程序实现了大幅度的查询优化,并且操作简单。那么在实际中,又是如何完成真正的优化的呢?在现实环境中,我们利用系统监视功能联合分析顾问来解决查询优化的问…

接入高防之后网站问题需要排查的有哪些?

接入高防之后,为了保证业务最大程度的稳定,确认问题所在,墨者安全建议在切换本地的测试。本地测试步骤为 :a.首先修改本地hosts文件,使本地对于被防护站点的请求经过高防,以Windows操作系统为例&#xff1…

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

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

如何防御网站被ddos攻击 首先要了解什么是流量攻击

2019独角兽企业重金招聘Python工程师标准>>> 什么是DDOS流量攻击?我们大多数人第一眼看到这个DDOS就觉得是英文的,有点难度,毕竟是国外的,其实简单通俗来讲,DDOS攻击是利用带宽的流量来攻击服务器以及网站。…

【面试精选】关于大型网站系统架构你不得不懂的10个问题

该文已加入笔主的开源项目——JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:https://github.com/Snailclimb/JavaGuide 。觉得不错的话,记得点个Star。下面这些问题都是一线大厂的真实面试问题,不论是对你面试…

python语言网站_部署基于python语言的WEB发布环境

一、部署说明 1、python语言介绍 2、实验环境 实验机器:Vmware虚拟机 8核10G 网卡:桥接模式 系统:centos7.5 防火墙:关闭 Selinux:关闭 网段:192.168.10.0/25 WEB01:192.168.10.42 二、部署流程…

百度快照 xilinx fpga权威设计指南_快照在SEO优化中扮演什么角色?

Seo 优化会经常听到“快照”这个词,比如在交换链接时,你会听到快照的更新速度。快照在SEO优化中扮演着一个什么样的角色?大多数人都不知道。Snapshot 是搜索引擎存储在服务器中的备份网页,也是搜索引擎对网站的认知属性。在网站进…

python爬虫真假网址,python爬取福利网站图片完整代码,懂得人都懂

网址需要自己替换懂的人都懂512*2,主要学习简单的爬虫,别乱用,否则后果自负![Python] 纯文本查看 复制代码import requests,bs4,re,os,threadingclass MeiNvTu: def __init__(self): self.url_mainhttps://网址保密,不能乱发哈哈/pw/ self.urlf{self.url_main}thread.php?fid …

怎样把本地html传到网上,如何制作自己的网页链接?教你怎么把自己制作的网站发布到网上?...

如何制作自己的网页链接?教你怎么把自己制作的网站发布到网上?下面就来一起看看吧!确定网页架构。要确定我们要做的网页内容,必须确定一个框架形式。一般比较流行,大部分网页都是。①网站页眉网站导航栏内容版块。一般新浪的网页和部分浏览器都采用这种…

做10个网站用多大的服务器,【教你搭建服务器系列】(10)利用Docsify搭建个人笔记网站...

写文档的工具非常多,但是作为程序员,大部人还是偏爱Markdown的,有时需要写一份开发文档,以供自己或者他人查看,那如何把 Markdown 文件转换成文档呢?docsify 就可以做到了,docsify 可以直接加载…

更换php版本_PHP与SEO,应用curl及正则获取搜狗搜索相关关键词

PHP是世界上最好的语言,来吧,入坑吧,我们一起来拍(pai)黄(huang)片(pian),Sorry,手抖,打错字了,当然是学习简写的,php啦!PHP即“超文本预处理器”,是一种通用…

php开源代码推荐,非常好用的源代码网站推荐,用这些开源代码就够了

原标题:非常好用的源代码网站推荐,用这些开源代码就够了作为一个开发人员写代码是工作的日常,在这个万物互联的时代,有问题马上百度、谷歌、知乎一下等等,代码也不例外,借鉴别人的代码同样可以事半功倍。下…

服务器运行环境查看,如何查看linux环境变量_网站服务器运行维护

linux如何查看进程端口是多少_网站服务器运行维护linux查看进程端口的方法是:1、首先执行命令【ps -ef | grep 进程名】,查看进程pid;2、然后执行命令【netstat -nap | grep 进程pid】,通过pid查看进程端口。首先执行如下命令&…