大型网站架构技术

news/2024/5/17 14:48:47/文章来源:https://wangkai.blog.csdn.net/article/details/79456773

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。


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无疑是目前最好的。

    数据同步

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

5 后台架构

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

    搜索引擎

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

    数据仓库

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

    推荐系统

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

6 数据采集与监控

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

    浏览器数据采集

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

    服务器业务数据采集

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

    服务器性能数据采集

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

    系统监控

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

7 安全架构

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

     web攻击

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

    数据保护

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

8 数据中心机房架构

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

    机房架构

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

    机柜架构

        机柜大小,网线布局,指示灯规格,不间断电源,电压规格等一系列问题

    服务器架构

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

                                                                                                        (转自Hollis)

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

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

相关文章

宝塔linux优化wordpress,宝塔面板搭建的WordPress网站,如何进行服务器缓存优化 ?...

宝塔面板搭建的WordPress网站,如何进行服务器缓存优化 ?首先安装好必要的web环境,那么我们开始安装缓存了,有三个是必装的,这里以安装Wordpress建站为例。1.PHP版本我们最起码选择7.0以上的版本,越高越好&a…

网站云服务器需要数据库吗,网站云服务器需要数据库吗

网站云服务器需要数据库吗 内容精选换一换云数据库RDS服务支持开启公网访问功能,通过弹性公网IP进行访问。您也可通过弹性云服务器的内网访问云数据库RDS。准备弹性云服务器或可通过公网访问云数据库RDS。通过弹性云服务器连接云数据库RDS实例,需要创建一…

这些免费的网络工程师资源网站,收藏起来,一年省下好几个W

授人以鱼,不如授人以渔。我收集了一些互联网相关论坛或网站,大家有其他好用的也可以在评论区补充! 哔哩哔哩(网工学习教程) 头条(资料、技术推文) 学知网(教材下载) TelReading社区 (综合、传输技术) CSNA&#x…

Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法 在《创建InetAddress对象的四个静态方法》一文中通过getAll…

发布网站时自动切换connectionString

1,安装 Web Deploy Projects2,在VS里右击Web项目, Add Web Deployment Project, 确定3,设置新添加的项目的属性. 其中的"Compilation"页中 Output Path即为要发布到的目录.4,在项目属性的Deployment页中,选中"Enable Web.config file section replacement"…

SNS网站盈利十八般武艺闯江湖

毫无疑问,SNS是现在互联网世界里最闪耀的“明星”,去年5月才成立的开心网,不到半年用户就从零扩展到千万级别。在几年前的门户时代,这个数字至少要花上个三四年。 开心网的外国师傅FaceBook,其创始人兼首席执行官马克扎…

大型网站框架的演变

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

DNS原因导致的不能访问网站问题一例

友情提示:大家可以了解下以下在这次问题解决中用到的一些技术名词:智能DNS和BGP了。双线及策略路由。公司的业务发展很快,在偶的老家郑州市和河南建业合作开了新的房产项目,而且二七塔附近的华联商厦亦在我们的管理之下。基于此&a…

您的网站需要做SEO(搜索引擎优化)吗?

站点访问量的第一来源是搜索引擎。搜索引擎是目前为止用户寻找信息、产品、服务的最主要的方式,网站将近90%的流量来自搜索引擎。搜索引擎优化作为网站推广的一种方式较其他形式的线上或线下营销模式而言是投资回报率最好的。 传统的广告形式只是将您的产品或…

Asp.Net4.0/VS2010新变化(4):SEO的改进

asp.net4.0的webform中,对于Page对象新增加了二个属性:MetaKeywords,MetaDescription 后端代码上,写法也更简单,以前可能需要这样写: this.Header.Controls.AddAt(0, new HtmlMeta() { Name "keywords", C…

自学网站 分享一波儿!

自学网站 | 让自己变得更加强大 哈喽大家好,大家都知道生活当中竞争压力特别大,稍微一不留神就会落后于时代发展潮流。许多人都在利用空闲时间充实自己。今天日常君就向大家介绍几个自学网站,让你技多不求人,学一门技能走遍天下都…

能让你10个T的硬盘瞬间爆炸的5个资源网站,值得收藏

相信很多朋友都知道,在网上找资源并不是所有都能找到的,有的资源找到了当你下载的时候却要收费,那么,找不到就真的是找不到了吗? 如果你还在为这个问题忧愁的话,现在不用愁了,今天小编将几个丰…

应用纹理背景的优秀网站设计作品【上篇】

纹理是网页设计中重要的视觉元素,常用作网站的大背景。漂亮的纹理背景可以让你的网站看起来更加优雅时髦,如果能和页面的其它组成部分融合成整体那就能让网站更有吸引力。今天这篇文字向大家分享46个充满吸引力的应用纹理背景的网页作品,希望…

12月第三周域名网站Top15:万网居首 西部数码升至第二

中国IDC评述网12月26日报道:据Alexa公布的最新数据显示,在12月第三周(12月17日-12月23日)期间,中国万网居国内域名主机网站用户覆盖数榜首,周均用户达1070。西部数码升至第二,达430,…

浏览器插件官方demo学习(二):删除浏览数据、设置当前网站显示的内容

删除浏览数据 官方demo:browsingData 使用的api 删除浏览数据需要使用chrome.browsingData,这里只按照官方demo,仅介绍一下 chrome.browsingData.remove 其他内容自行查看官方文档 使用 chrome.browsingData API 从用户的本地配置文件中删…

FindMaven Rest API-通过API找到class所在的jar做自己的findjar网站

2019独角兽企业重金招聘Python工程师标准>>> 中文api指南:http://www.findmaven.net/api_cn.jsp 英文api指南:http://www.findmaven.net/api_en.jsp 网站首页的基本功能: 上面的功能都可以通过FindMaven API在你自己的网站上实现&…

drupal网站邮件发送功能的实现

drupal站点可以使用gmail邮箱向用户发送邮件,实现类似的功能有SMTP或者PHPmailer模块,我使用的是phpmailer模块,下面是我配置的过程,贴出来供大家参考。 1、下载phpmailer模块 http://drupal.org/project/phpmailer 2、启用phpmai…

网站

网站转载于:https://blog.51cto.com/netwalk/1422672

必须收藏的python兼职网站大全

当下python需求量还是挺大的,对于想要做兼职的程序员还是挺友好的:起码不用愁找不到;目前来看,其兼职方向大致有三:开发、爬虫、数据分析。 就开发来说,目前python的轮子在Github上一抓一大把,…

大学生学完python靠几个接单网站兼职,实现经济独立

说点想说的 程序员就是当今时代的手艺人,程序员可以通过个人的技术来谋生。而在工作之余接私单可以作为一种创富的途径,受到程序员的广泛认可。说句实在话,现在这个时代,很多人仅靠主业顶多维持基本生活,想让自己、家…