《大型网站技术架构》读书笔记二:大型网站架构模式

news/2024/5/19 19:14:31/文章来源:https://blog.csdn.net/weixin_30398227/article/details/97213083

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

一、分层

  最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责。网站一般分为三个层次:应用层服务层数据层,其具体结构如下图所示:

  通过分层,一个庞大系统切分成不同部分,便于分工合作和维护

  但是,分层架构也有一些挑战:①必须合理规划层次边界和接口;②禁止跨层次的调用及逆向调用。

二、分割

  分割是在纵向方面对软件进行切分->将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,有助于软件开发和维护,还便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。

三、分布式

  ①分布式应用和服务:应用和服务模块分布式部署,便于业务功能扩展;

  ②分布式静态资源:JS、CSS、LOGO图片等资源独立部署,采用独立域名->动静分离;

  ③分布式数据和存储:传统RDBMS分布式部署和NoSQL产品;

  ④分布式计算:Hadoop及其MapReduce分布式计算框架,其特点是移动计算而不是移动数据。

四、集群

  多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。当某台服务器发生故障,负载均衡设备或者系统的失效转移机制将请求转发到集群中的其他服务器上,提高系统的可用性,即所谓的HA(高可用性)。

  所以,在网站应用中,即使是访问量很小的分布式应用和服务,也至少要部署两台服务器构成一个小集群。

五、缓存

  缓存是改善软件性能的第一手段。在复杂的软件设计中,缓存几乎无处不在。

  ①CDN:内容分发网络,缓存网站的一些静态资源;

  ②反向代理:部署在网站的前端,最先访问到的就是反向代理服务器;

  ③本地缓存:在应用服务器本地缓存热点数据,无需访问数据库;

  ④分布式缓存:应用程序通过网络通信访问缓存数据;

  网站应用中,缓存除了可以加快数据访问速度,还可以减轻后端应用和数据存储的负载压力

六、异步

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

  异步架构是典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以随意变化而不互相影响,这对网站扩展新功能非常便利。

  异步消息队列可以提高系统可用性、加快网站响应速度,消除并发访问高峰。

七、冗余

  要想保证在服务器宕机的情况下网站依然可以继续服务,不丢失数据,就需要一定程度的服务器冗余运行,数据冗余备份,这样当某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器上。

  数据库除了定期备份存档保存实现冷备份之外,为了保证在线业务高可用,还需要对数据库进行主从分离,实时同步实现热备份

八、自动化

  在无人值守的情况下,网站可以正常运行,一切都可以自动化是网站的理想状态。目前大型网站的自动化架构设计主要集中在发布运维方面。 

  ①发布部署过程自动化;

  ②自动化代码管理;

  ③自动化测试;

  ④自动化安全监测;

九、安全

  ①通过密码手机校验码进行身份验证;

  ②对登录、交易等操作进行加密

  ③使用验证码进行识别;

  ④对于常见的XSS攻击、SQL注入、编码转换等进行防范;

  ⑤对垃圾或敏感信息进行过滤

  ⑥对交易转账等操作进行风险控制

十、总结

  好的设计绝对不是模仿,不是生搬硬套某个模式,而是对问题深刻理解之上的创造与创新,即使是“微创新”,也是让人耳目一新的似曾相识。山寨与创新的最大区别不在于是否抄袭,是否模仿,而在于对问题和需求是否真正理解与把握

本章思维导图

 

转载于:https://www.cnblogs.com/edisonchou/p/3790225.html

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

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

相关文章

桌面风格的Web网站

天天记账网:http://www.365jizhang.com 超级牛牛无敌在线盯盘专家:http://www.googlook.net/stock/Stock.html

垂直网站的法宝——行业评测

垂直网站的法宝——行业评测 互联网垂直类网站在某个行业做久了对所从事的行业会很熟悉,继而从原来的纯粹提供资讯转变为更深入的行业信息,行业评测就是一个非常好的深入为网民服务的工具。 以下给大家举几个例子,给大家说说: 1、…

美国百年老报关门将转型新闻网站

两个月来,《西雅图邮讯报》员工最担心的事还是发生了。周一,美国出版巨头赫斯特集团宣布,该报将在17日发行最后一期报纸;然后转型为新闻网站。"今晚我们将最后一次出版报纸,"《西雅图邮讯报》总编兼发行人罗…

php 网站 seo,PHP网站怎么做SEO优化?

现在seo基本上已经是在广泛的应用了,php程序的企业网站也越来越多,其实我之前一直喜欢用asp的,但是发现很多国外的空间现在不支持asp,所以也就研究了一下php,网站建好,当然也想要有一个好的网站排名&#x…

推荐:学习人工智能(AI)的一些网站及教程资源

Python 深度学习库 Keras 发布官方中文文档https://keras.io/zh/这里有你需要了解的一切 今年1月,Keras作者、谷歌AI研究员Franois Chollet在推特上发出召唤:讲中文的Keras用户们,是否有人愿意帮忙一起搞个Keras文档的中文版? 一个…

2020十大最受欢迎的编程挑战网站【2020最新更新】

解决编码难题是提高学习编码技能的一种好方法。解决不同类型的挑战和难题可以帮助您成为更好的问题解决者,学习编程语言的复杂性,准备工作面试,学习新算法等等。 以下是一些受欢迎的编码挑战网站的列表,并简要说明了每个网站所提…

一个超火的网站“Omegle”

一个超火的网站“Omegle” 在美国有一个小网站突然暴红。这个网站叫「Omegle」(http://omegle.com/),页面非常简单,实际就两个页面。它的首页就有一个很大的按钮,上面写着“开始聊天”按下去以后,它立刻将你和目前在线上的某位陌生…

PyThon模块与项目热度网站

网站链接:点击这里

NVIDIA深度学习文档教程网站

网址链接:https://docs.nvidia.com/tlt/tlt-user-guide/text/overview.html

推荐一个深度学习数据集网站

推荐理由,国外被墙导致速度下载非常慢,使用迅雷PC端下载的方式可提升很高的速度:https://hyper.ai/datasets

HEXO搭建博客网站教程全集汇总

完整教程链接地址:https://github.com/KangChou/KangChou.github.io hexo官网 我的博客官网 我的博客主题参考 我最初开始搭建博客的详细教程

(转)大型网站架构演变和知识体系

出处:http://hi.baidu.com/qq_java_liu/blog/item/182d3b1f0a916a0c314e15cf.html 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,…

网站验证码,乱涂乱画版

取Session("ValidateCode")即可获得图像验证码并进行对比1ImportsSystem.Drawing2PartialClass WebService_VimageClass WebService_Vimage 3 Inherits System.Web.UI.Page 4 Dim letterMatrix() As String {"A", "C", "D", &q…

BlogEngine.Net架构与源代码分析系列part14:实现分析(下)——网站页面上值得参考的部分...

BlogEngine.Net的成功不仅在于它的架构设计,它的代码实现细节也都是很经典的,每个结构分割的很清晰很自然,希望大家多多品位一下。在这篇文章里我将给大家介绍一下BlogEngine.Net的Web实现上的几个亮点,包括Web.config&#xff0c…

非常好用的在线画树网站(树结构的自动生成工具,免去手动画树的烦恼)

最近编译原理学到语法分析树,需要频繁、大量地画树结构,一开始我使用了画图、PPT等工具,或是在纸上画好然后拍下来,但很是麻烦。 经同学推荐,找到了这样一个树的自动生成工具:Syntax Tree Generator。它的…

企业网站服务器负载均衡技术

负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都…

Rational AppScan 扫描大型网站

Rational AppScan 工作原理 Rational AppScan(简称 AppScan)其实是一个产品家族,包括众多的应用安全扫描产品,从开发阶段的源代码扫描的 AppScan source edition,到针对 Web 应用进行快速扫描的 AppScan standard edition,以及进行…

集成轻量级的IIS实现打包Asp.Net网站生成exe方便快捷的进行客户演示

本文和大家分享一下打包Asp.Net 网站成为一个exe 方便快捷的进行客户演示,挺不错哦。 在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe,在没有IIS的情况下可以单独运行这个exe来开启整个网站。在Asp.Net 下一直没有类似的产品出现&…

从团购网的漏洞看网站安全性问题

原文: http://www.cnblogs.com/jintianhu/archive/2011/01/03/1924989.html 自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。 元旦期间当然也不例外,…

大型网站架构演变和知识体系

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