一、大型网站架构

CDN(内容分发网络)和反向代理:基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存这用户请求的资源,就将其直接返回给用户。二者缓存的都是网站的一些静态资源。

负载均衡调度服务器:将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,可在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。

业务拆分:大型网站为应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,如大型购物交易网站就会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,然后根据产品线的划分,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用直接可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),或通过消息队列进行数据分发,而最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

分布式服务:随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。而每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,则可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。

使用NoSQL和搜索引擎:随着网站业务愈发的复杂,对数据存储和检索的需求也愈发的复杂,故网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

二、架构模式

1.分层:是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。一般分为应用层、服务层、数据层,应用层还可细分为视图层和业务逻辑层,服务层也可细分为数据接口层(适配各种输入和输出的数据格式)和逻辑处理层。
2.分割:由于网站越大,功能越复杂,服务和数据处理的种类也越多,可以将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。
3.分布式:将不同模块部署在不同的服务器上,通过远程调用协同工作。方案:分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算、分布式配置、分布式锁
分布式文件系统等。
4.集群:多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
5.缓存:将数据存放在距离计算最近的位置以加快处理速度。缓存设计:CDN和反向代理(见前所述),本地缓存(在应用服务器本地缓存着热点数据,应用程序可在本机内存中直接访问数据),分布式缓存(集群)。
6.异步:系统为了解耦,使业务之间的消息传递使用异步方式,将一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行进行协作。在单一服务器内部可通过多线程共享内存队列的方式实现异步,在分布式系统中,多个服务器集群通过分布式消息队列实现异步。
7.冗余:为保证在服务器宕机的情况下网站依然可以继续服务,不丢失数据,就需要一定程度的服务器冗余运行,数据冗余备份。
8.自动化:发布运维方面(主)。发布过程自动化、自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源。
9.安全:通过密码和手机校验码进行身份认证;登录、交易等操作需要对网络通信进行加密,网站服务器上存储的敏感数据如用户信息等也要进行加密处理;为了防止机器人程序滥用网络资源攻击网站,网站使用验证码进行识别;对于常见的用于攻击网站的XSS攻击、SQL注入,进行编码转换等相应处理;对于垃圾信息、敏感信息进行过滤;对交易转账等重要操作根据交易模式和交易信息进行风险控制。

读书笔记:《大型网站技术架构:核心原理与案例分析》(李智慧)(一)相关推荐

  1. 读《大型网站技术架构 核心原理与案例分析+李智慧-高清》有感

    其实作为一个刚入职场的小白(今年才毕业),对于java的领域一开始我是特别喜欢.从一开始的学习ssm框架培训,到现在真正的去公司参加项目.目前为止我进公司快一个月了,先从写测试类开始,用的是testn ...

  2. 读书笔记:大型网站技术架构-核心原理与案例分析

    李智慧<大型网站技术架构-核心原理与案例分析> 性能 可用性 伸缩性 扩展性 安全性 总结 这本书组织的很不错,语言精练,篇幅也不长,对网站架构的要点讲的狠清楚透彻,思路清晰.主要围绕架构 ...

  3. 读书笔记之 大型网站技术架构(核心原理与案例分析)

    前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...

  4. 大型网站技术架构:核心原理与案例分析 mobi_阿里面试官:你会高并发技术吗?...

    前言 据有关数据统计,无论是游戏行业还是互联网行业,无论是软件开发公司还是大型网站,都对高并发技术人才有着巨大的需求.因此,无论为了是面试还是为了工作,学习高并发技术刻不容缓. 当然,高并发相关岗位的 ...

  5. 大型网站架构模式【大型网站技术架构.核心原理与案例分析】(阅读分享)

    这本书分几个章节,其中有一个值得和大家分享的技术知识. 大型网站架构模式中引入了模式概念:每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不 ...

  6. 【撸码师读书笔记】 大型网站技术架构——核心原理与案例分析

    2019独角兽企业重金招聘Python工程师标准>>> 合理的预估系统的瓶颈及制定有效伸缩性架构预案: 架构设计应从性能,可用性,伸缩性,扩展性及安全这五个要素方面出发: 与传统企业 ...

  7. 大型网站技术架构:核心原理与案例分析 mobi_大数据技术经典学习路线

    如果你看完有信心能坚持学习的话,那就当下开始行动吧! 点击链接加入群聊[大数据学习交流群]:想要在大数据这个领域汲取养分,让自己壮大成长.分享方向,行动以前先分享下一个大数据交流分享资源,欢迎想学习, ...

  8. 把书读薄:大型网站技术架构-核心原理与案例分析(第四篇 架构师)

    14 架构师领导艺术 职能:架构设计,软件开发,管理职能(规划产品,估算人力资源,估算时间资源,安排人员职责分工,确定计划里程碑,指导工程师工作,过程风险评估与控制). 是工程师的榜样,要做好表率. ...

  9. 大型网站技术架构·核心原理与案例分析 第八章·固若金汤:网站的安全架构思维导图

    固若金汤:网站的安全架构思维导图

  10. 大型网站技术架构核心原理与案例分析学习笔记(理论篇)

    大型网站软件系统的特点 高并发.大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 大型网站架构演化发展历程 所有资源在一台服务器上,使用免费开源的 ...

最新文章

  1. 百度地图 点聚合_强强联合聚能网约车场景 首汽约车为百度地图“站台”
  2. BIM技术在各阶段应用的软件你知多少?
  3. 中考英语听说计算机考试满分,北京2018中考英语听说计算机考试注意事项
  4. 2月份Github上很热门的Python项目
  5. 雷林鹏分享:YII 模型-视图-控制器(MVC)设计模式
  6. Git学习笔记(四)
  7. rabbitmq消费者设置手动ack
  8. frontpage 2010.2003绿色版
  9. VOC2007和COCOmAP计算
  10. 【4G模块】-有方科技Neoway-N720
  11. Ctrl+Shift+End
  12. Java的Integer与int互转
  13. 深入理解LayoutInflater.inflate()
  14. Masonry 比例设置multipliedBy与dividedBy区别
  15. 实现Typora多端同步
  16. BICC协议(简介)
  17. OpenCore 版本升级后清除NVRAM
  18. html图片定位坐标原点,利用CSS定位背景图片的常用方法总结
  19. 【热门书籍】温度决定生老病死 作者:马悦凌
  20. idea必备开发插件.

热门文章

  1. 【杀毒】-记一次挖矿病毒sysdrr杀毒
  2. 小卡机器人积木教程_这个会动的智能积木机器人分分钟让孩子爱不释手!秒杀家中99%的益智玩具!| 团...
  3. 「镁客·请讲」中科云创周北川:从数据到云端,我们要上下打通工业物联网产业链...
  4. 金蝶K3系统单据审核时报错:无效的过程调用或参数 处理方法
  5. 新词发现的学习和代码
  6. 分数计算机在线应用,在线连分数计算器
  7. 打印机语言PCL与PostScript的比较
  8. WordPress安装教程(详细)
  9. 云计算:程序员重回个人英雄时代
  10. Jscript流程控制语句