大型网站技术架构(二)架构模式

news/2024/5/10 1:56:05/文章来源:https://blog.csdn.net/weixin_34220623/article/details/92648781

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。

          所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行灯一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全等各种技术架构目标。

1、分层

        分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。

        在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。

       分层架构是逻辑上的,在物理部署上,三层架构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,是网站拥有更多的计算资源以应对越来越多的用户访问。

      所以虽然分层架构模式最初的目的是规划软件清晰的逻辑结构以便于开发维护,但在网站的发展过程中,分层结构对网站支持高并发向分布式方向的发展至关重要

2、分隔

       如果说分层是将软件在横向方面进行切分,那么分隔就是在纵向方面对软件进行切分。

       网站越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分隔开来,包装成高内聚低耦合的模块单元,不仅有助于软件的开发维护也便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。

      大型网站分隔的粒度可能会很小。比如在应用层,将不同业务进行分隔,例如将购物、论坛、搜索、广告分隔成不同的应用,有对立的团队负责,部署在不同的服务器上。

3、分布式

       对于大型网站,分层和分隔的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着可以使用更多的计算机完同样的工作,计算机越多,CPU、内存、存储资源就越多,能过处理的并发访问和数据量就越大,进而能够为更多的用户提供服务。

       在网站应用中,常用的分布式方案有一下几种.

       分布式应用和服务:将分层和分隔后的应用和服务模块分布式部署,可以改善网站性能和并发性、加快开发和发布速度、减少数据库连接资源消耗。

       分布式静态资源:网站的静态资源如JS、CSS、Logo图片等资源对立分布式部署,并采用独立的域名,即人们常说的动静分离。静态资源分布式部署可以减轻应用服务器的负载压力;通过使用独立域名加快浏览器并发加载的速度。

       分布式数据和存储:大型网站需要处理以P为单位的海量数据,单台计算机无法提供如此大的存储空间,这些数据库需要分布式存储。

       分布式计算:目前网站普遍使用Hadoop和MapReduce分布式计算框架进行此类批处理计算,其特点是移动计算而不是移动数据,将计算程序分发到数据所在的位置以加速计算和分布式计算。

4、集群

       对于用户访问集中的模块需要将独立部署的服务器集群化,即多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务。

       服务器集群能够为相同的服务提供更多的并发支持,因此当有更多的用户访问时,只需要向集群中加入新的机器即可;另外可以实现当其中的某台服务器发生故障时,可以通过负载均衡的失效转移机制将请求转移至集群中其他的服务器上,因此可以提高系统的可用性

5、缓存

       缓存目的就是减轻服务器的计算,使数据直接返回给用户。在现在的软件设计中,缓存已经无处不在。具体实现有CDN、反向代理、本地缓存、分布式缓存等。

       使用缓存有两个条件:访问数据热点不均衡,即某些频繁访问的数据需要放在缓存中;数据在某个时间段内有效,不过很快过期,否在会因为数据过期而脏读,影响数据的正确性。

6、异步

      使用异步,业务之间的消息传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段之间通过共享数据的方法异步执行进行协作。

      具体实现则在单一服务器内部可用通过多线程共享内存对了的方式处理;在分布式系统中可用通过分布式消息队列来实现异步。

      异步架构的典型就是生产者消费者方式,两者不存在直接调用。

7、冗余

      网站需要7×24小时连续运行,那么就得有相应的冗余机制,以防某台机器宕掉时无法访问,而冗余则可以通过部署至少两台服务器构成一个集群实现服务高可用。数据库除了定期备份还需要实现冷热备份。甚至可以在全球范围内部署灾备数据中心。

8、自动化

      具体有自动化发布过程,自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复等。

9、安全

      网站在安全架构方面有许多模式:通过密码和手机校验码进行身份认证;登录、交易需要对网络通信进行加密;为了防止机器人程序滥用资源,需要使用验证码进行识别;对常见的XSS攻击、SQL注入需要编码转换;垃圾信息需要过滤等。

转载于:https://my.oschina.net/zhanghaiyang/blog/597649

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

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

相关文章

seo建设者_杭州诠网科技分析seo优化外链的作用和基本属性

外链作为搜索引擎排名规则的一个主要因素,是网站SEO优化过程中一项长期而枯燥的工作,既有时间和规模的限制,又对工作的规律性有很多要求。在这个过程中,我们需要认真了解外链的作用和外链的基本属性,从而实现有价值的外…

MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变。 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下,常用的扩展手…

vuejs 预渲染插件 prerender-spa-plugin 生成多页面 -- SEO

prerender-spa-plugin 与 vue-meta-info 前端vue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种: 1、SSR服务器渲染   了解服务器渲染请进,这里不做记录。 2、预渲染模式 这比服务端渲染要简单很多…

面向Web开发人员和网站管理员的Web缓存指南

这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你…

面向Web开发人员和网站管理员的Web缓存指南

这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你…

MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变。 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下,常用的扩展手…

最终解决 mouseenter, mouseleave , mouseout mousehover mousemove等事件的区别?

在jquery中, html页面的div的显示和隐藏, 修改等的功能, 最终都要由 事件 触发来引用, 不管是键盘事件, 还是鼠标事件...mouseenter和mouseleave是成对对应的, mouseover & mouseout是对应的, mousedown和mouseup是对应的没有mousehover, 只有hover 事件函数, hover是模拟&…

dedecms php 文件修改,织梦DEDECMS网站怎么修改data目录名称

织梦DEDECMS网站怎么修改data目录名称?最近dedecms漏洞频繁出现,织梦官方也给出了很多相应的措施。今天给大家讲的就是dedecms官方建议用户修改data文件名称。 对于虚拟主机来说,有些虚拟主机限制,不给移动到web目录以外&#xff…

怎么让你的网站快速飞

2019独角兽企业重金招聘Python工程师标准>>> 第一章 怎么让你的网站快速飞 1.1 服务器、VPS、空间的介绍 服务器 服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器…

地址栏加不加www都可以访问网站 -- -- -- -- 配置

需求:加不加www都可以访问网站 www.abc.comabc.com 需要配置几个地方: 一、 服务器(以阿里云服务器为例) 需要插入两条记录,可从新手指导中配置,生效时间为TTL中配置的时间内 二、 服务器电脑中&#xf…

大型网站架构系列:消息队列(二)

本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇…

web网站开发培训,JavaScript的if关键字

01 哪些专业转CS成功率高? 根据数据统计,在培养的前端开发工程师人才中,成功拿到offer,约38%是计算机专业毕业,62%都是非计算机专业转行的学员! 在成功拿到大公司前端开发工程师offer的非计算机专业同学中…

Springboot+JPA+Thymeleaf 校园博客完整小网站

本文所属【知识林】:http://www.zslin.com/web/article/detail/35此项目是一个比较简易的校园博客。麻雀虽小五脏俱全,虽然是比较简易的但是涉及的知识点还是比较全面的。 此项目涵盖了【知识林】中Springboot和Thymeleaf中所有知识点的内容。 主要功能有…

Nginx网站根目录更改及导致403 forbidden的问题解决

最近因为工作需要,要将Nginx网站根目录更改下,通过网上的一些教程更改后,但发现测试的时候一直提示403 forbidden错误,后台通过一个朋友的提示也解决了,所以现在将详细的步骤分享给大家,有需要的朋友们可以…

【必看】分析各大招聘网站

目前市场上的招聘网站鱼龙混杂,人力资源市场这块大蛋糕谁都想分一块。工作对于每个人来说都是人生中的一件大事,所以如何选择一个适合自己的经验水平等各方面的正规招聘网站就显得尤为重要,那么今天小编就从客观角度,为大家分析市…

二线视频网站突围战

在并购、自制剧、社交视频等各种概念的炒作之下,2013年毫无悬念地成为国内视频网站最热闹的年份。然而这些大戏并不仅仅是一线大佬们的狂欢宴,二线视频企业也不甘落寞,纷纷出击。在这场异常残酷的竞争中,大家都在用生命刷着存在感…

一个做得很好的电子产品测评类网站:Zealer

无意中发现了一个做得很好的电子产品测评类网站——Zealer。http://www.zealer.com/ 站长王自如很有个人魅力。尤其他在老罗发布会点评的那期节目里。 与他类似,我也是做质量评测的,不过是视频的质量评测。我明白做这种第三方评测是很难盈利的。因为一旦…

最简单的视频网站(JavaEE+FFmpeg)

本文记录一个最简单的视频网站系统。此前做过一些基于JavaEE中的SSH (Strut2 Spring Hibernate)的网站系统,但是一直没有做过一个视频网站系统,所以就打算做一个“精简”的视频网站系统,以方便以后测试以及学习使用。本视频网站支持直播&am…

8x8点阵字体在线生成器_超好玩的生成器工具网站,沙雕又有趣!打开新世界

1. 在线抠图、证件照生成器 :http://t.cn/A67EE9UQ2.爱情小说生成器 :同人小说生成器3.Cp短打生成器 :http://t.cn/Aid6pD1l4.爱豆翻牌体验器:爱豆翻牌体验器5.口罩头像生成器:口罩护目镜头像生成器6.今日吃什么:今天晚饭吃神马?7.记仇表情生成器:bangbang93.lab()8…

王道操作系统ppt课件_推荐5个做PPT课件的免费模板网站

老师做课件找模板网站在于精不在多,以下我就精心整理出来5个免费模板网站,推荐给大家。最主要是免费!免费!免费!1、Office Plus(http://www.officeplus.cn/)官方出品,必属精品&#…