大型网站架构之大型网站架构模式

news/2024/5/20 13:00:40/文章来源:https://xiyuan.blog.csdn.net/article/details/102328028

大型网站架构模式

什么是模式呢?(模式就是针对特定问题目前行业的解决方案)
模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。借助模式我们可以减少很多重复的工作。

大型互联网公司在实践过程中提出了很多的解决方案,以实现网站高性能、高可用、 易伸缩、可扩展、安全等各种技术架构目标。

1.分层
将系统在横向维度上切分成几个部分,每个部分负责相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完成的系统。
在大型的网站架构中,通常分为:(分层本质上是逻辑上分层,但是结合一些技术可以实现在物理上更深层层次的分层)

  • 应用层:具体负责业务和视图展示,如网站首页及搜索输入和结果展示
  • 服务层:为应用层提供服务支持,如用户管理服务,购物车服务等
  • 数据层:提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等

分层这种模式大大提升了系统可扩展性、易维护性。

2.分割
分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。
通常上根据业务进行分割,例如将购物、论坛、搜索 、广告分割成不同的应用,由独立的团队负责,部署在不同的服务器上。

3.分布式
某种意义上来说,分层和分割的一个主要目的是为了切分后的模块便于分布式部署,
即将不同的模块部署在不同的服务器上,通过远程调用协同工作。
在网站应用中,常用的分布式方案有:

  • 分布式应用和服务:将分层和分割后的应用和服务模块分布式部署。
  • 分布式静态资源:网站的静态资源如JS,CSS,图片资源等资源独立分布式部署,并采用独立的域名,即动静分离。
  • 分布式数据和存储:传统的关系数据库进行分布式或者Nosql数据库。
  • 分布式计算:使用诸如Hadoop以及MapReduce分布式计算框架进行此类批处理计算。

4.集群
使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块(比如网站的首页),还需要将独立部署的服务器集群化,
即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。

5.缓存
缓存就是将数据存放在距离计算最近的位置以加快处理速度。
通常有以下缓存:

  • CDN:部署在网络服务商,通常在这里缓存一些静态资源,如视频网站和门户网会将热点视频或热点内容缓存在CDN。
  • 反向代理:部署在网站的前端,用户的请求到达网站的数据中心时,最先会来到反向代理服务器,这里也会进行缓存。
  • 本地缓存:在应用服务器缓存着热点数据,避免频繁访问数据库。
  • 分布式缓存:将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问缓存数据。

使用缓存通常要满足一下条件:
1.部分数据会被频繁访问
2.数据在某段时期内是有效的不会很快过期

6.异步
业务之间的消息传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段通过共享数据的方式异步执行进行协作。
异步的方式有多线程、消息队列等方式来实现。

7.冗余
为了保证网站会因为部分服务器宕机而导致不能对外提供服务,需要一定程度的服务器冗余运行,数据冗余备份。

8.自动化
在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。
这些自动化包括:
发布过程自动化、自动化代码管理、自动化测试、自动化安全检测、自动化部署
自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源

9.安全
通过密码和手机验证码进行身份认证;登录、交易等操作对网络通信进行加密;
对敏感信息进行加密处理;访问是进行权限管理等等。

以新浪微博的架构为例

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

大型网站架构之大型网站核心架构要素

大型网站核心架构要素 软件架构指的是,有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。 1.性能 在浏览器端 a.通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等手段改善性能; b.可以使用CDN&#xff0c…

大型网站架构之性能篇

网站的高性能架构(性能) 不同视角下的网站性能有着不同的标准,也有不同的优化手段。 1.用户视角的网站性能优化 通过优化页面HTML样式、利用浏览器端的并发和异步特性(即用户不用等待结果)、调整浏览器缓存策略、使用…

大型网站之高可用篇

网站的高可用架构(高可用) 由于种种情况,在业务中硬件故障是常态,所以网站的高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保持并能够并访问。 高可用的主要手段:数据和服务的冗余备份及失…

大型网站之伸缩篇

网站的伸缩性架构(伸缩性) 绝大数网站都是渐进式成长的,在这个过程中最重要的技术是就是使用服务器集群,通过不断地向集群中添加服务器来增加整个集群的处理能力。 网站架构的伸缩性设计 网站的伸缩性设计分为两大类 根据功能进…

大型网站之扩展篇

网站的可扩展架构(扩展性) 伸缩性:通常指利用集群的方式增加服务器数量、提高系统的整体事务吞吐能力。 扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。 网站的可扩展性,依托于系…

大型网站之安全篇

网站的安全框架(安全性) a.黑客攻击 XSS攻击 XSS攻击即跨站点脚本攻击,指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。 常见的XSS攻击分为 反射型&am…

使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信

亲测,已经建立了https链接 参考链接: https://blog.csdn.net/guoxiaojie_415/article/details/80554109 https://www.cnblogs.com/kezi/articles/11512420.html

浏览器版本过高导致无法访问网站 burpSuiteBrowser

错误: 建立安全连接失败 连接到 172.24.11.101 时发生错误。对等端使用了不支持的安全协议版本。 错误代码:SSL_ERROR_UNSUPPORTED_VERSION 由于不能验证所收到的数据是否可信,无法显示您想要查看的页面。 建议向此网站的管理员反馈这…

js 获取服务器ip_如何提高香港服务器网站的访问速度

从选择服务器上入手1.选择直连国内网络骨干的机房 直连国内网络骨干机房通常节点都比较少。通常数据在经过路由器进行转发时,都需要花费一定的时间,因而节点比较少的机房,它所提供的香港服务器多相对快一些,具体我们可以通过ping服…

php一维数组合并为二维数组,php输出数据并转换成若干一维数组最后合并为一条二维数组 - 傲世零零个人技术网站...

代码功能:php输出数据并转换成若干一维数组最后合并为一条二维数组//数据库连接require(db.php);//查询语句$sql2 "select * from xc_pic where xcid89 ";$result2 mysql_query($sql2,$conn);$dd0;while($row2 mysql_fetch_array($result2)){$dd$dd1…

逆向某电影网站signKey参数

1.打开我们要获取数据的页面 这里我们可以看到,这个有个加密参数signKey,猫眼好像改了,这个页面一些东西变成动态渲染了。他会发送一个请求去请求这个数据 我们打开这个页面,可以看到 这里面都是我们要的参数,像评分呀…

补某视频网站的js,进行视频解密

前言: 前不久,有个群友在群里发了一个视频的m3u8文件,其中的key是16字节,但是就是无法进行下载。但是用m3u8下载器进行下载时,无法下载下来,我开始怀疑是有请求头检验,用代码请求了一下&#x…

java web gzip_java使用gzip对静态资源的压缩,提供web网站访问速度

一、gzip简介Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1,1993年2月&a…

Web大作业-关于创业计划网站制作的第二天......

嘶......转专业真的是麻烦,前有C语言大作业算法实现,现有Web工程网页要做..... 贴几张预览图吧,第一部分算是完成了,接下来还有两个部分,分别是宣传视频和个人计划的安排。 另外,学校的校园网真菜&#x…

Web大作业-关于创业计划网站制作的第三天......

代码都是我一行一行敲下来的,虽然我相信得分不会很高(确信)。 但是第二部分算是完成了,就是宣传视频部分,让三个网页互相连接,其实我还想用用js把网站写活,奈何能力有限。 第三部分我打算讲述自己的创业计划&#xf…

Web大作业-关于创业计划网站制作的第四天......

主要是登录和注册界面。 还有自己的创业计划。差不多完工了。

5 qlineedit获取内容_SEO内容营销:你应该关注的5个考核指标!

在SEO工作中制定内容营销策略是一个必不可少的工作,毕竟内容为王的时代,任何的营销与推广我们都脱离不了内容,每隔一段时间SEO主管都会对内容营销做复盘,通过数据分析,查看相关指标,是否达到预期。 那么&am…

爬虫学习记录(四)————利用pyquery,re爬取静态网站信息存储到mongodb中

爬虫学习记录(四)————利用pyquery,re爬取静态网站信息存储到mongodb中静态页面爬取引入需要的包定义获取html文件的基本函数定义获取所有详情页的url函数定义解析详细信息的函数将函数链接起来存储到mongodb中链接mongodb的基本参数定义存…

《筑巢引凤:高黏度社会化网站设计秘诀》读书笔记

难怪所有人都想在亚马逊购物,它有其他任何网站都没有的信息——真相(*备注:我们网站的特点:真实性、扩展性) 处于群体之中,围绕群体活动,却又保持个人独立性,这种关系深刻地影响着我…

Java实现一个GUI的SEO软文生成器v1

项目CODE地址: https://code.csdn.net/u012995856/autogenseoarticle/tree/master 效果图: 目录结构: 功能: GUI输入,替换现成模板里的变量,生成新文件 Generator.java package cn.pangPy…