大型网络架构变迁和知识图谱

——仅供个人学习使用,如有侵犯版权,请作者联系我,立马处理。

733795-20190314171135621-335922222.jpg

【前端页面缓存】 sessionStorage,localStorage,userData,cookie,
[sessionStorage]
h5后出现的新技术,这个生命周期短,当页面关闭后,存储资源即被释放。可存储体积也较大。对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。注:页面刷新,或disable cache,存储资源还在,只有当页面关闭后才没有。
[localStorage]
与sessionStorage唯一区别是,存储生命周期。它是长久存储在浏览器中,没有时间限制, 不清除就会一直存在。它不是存储在浏览器中,存储在本地。它按域名存储,存储大小大概是5m缺点是兼容性中等,ie9、ie10不支持,不能跨浏览器读取的。
[userData]
这个是比较老的存储技术,有兼容问题,Ie支持
[cookie]
这个兼容性最好,应用也最广泛,现在大多登陆校验都用这个。特点是:每次向服务器发请求,请求头都会带cookie,存储大小有限制
[openDataBase]
其实就是一个本地数据库,缺点是对前端开发成本高。它存储在本地

【页面片段缓存】
场景介绍:https://www.cnblogs.com/yuyijq/archive/2011/05/07/fragment_cache_one.html

一般,页面上会分为很多部分,而不同的部分更新的频率是不一样的。如果对整个页面采用统一的缓存策略则不太合适,
而且很多系统的页面左上角都有一个该死的“Welcome XXX”。这种特定于用户的信息我们是不能缓存的。对于这些情况我们就需要使用片段缓存了。对页面不同的部分(片段)施加不同的缓存策略,而要使用片段缓存,首先就得对页面进行切分。土一点的办法可以用iframe,用iframe将页面划分为一块块的,不过我总觉得iframe是个邪恶的东西。好点的办法可以用Ajax单独的请求这个片段的内容然后再填充,看起来挺美好的。不过使用Ajax也有一些限制:
1、如果页面上有许多片段,使用太多的这种技术,会有很多请求发送到服务器,HTTP对同一个域名有连接的限制,这样会降低并发连接的效率。
2、如果说第一个不是什么问题,那么还有一点可能对用户体验不友好。比如有一个片段可能响应慢点,造成页面闪烁。不过如果前面两点都可以克服,这个方案还是可以的。可恶的是我们的客户(此处省略500字),说他们的大多数用户处于一个禁用JavaScript的环境里。好吧,这个方案也不能使用了。

成熟的页面片段缓存技术-:ESI(Edge Side Include) https://www.cnblogs.com/yuyijq/archive/2011/05/08/fragment_cache_two.html

使用Velocity自定义标签的方案工作在应用程序这一层,这样开发人员有最大的控制权力,而且实现起来也比较简单,所使用的也都是大家都熟悉的技术,但问题是它还是由应用程序服务器来处理得,可以说它减轻了一部分应用程序服务器和数据库服务器的压力,但还有一部分压力还是需要它来承担,而且在应用程序中解决所使用的缓存必定是和应用程序所采用的缓存机制一样(当然你也可以为此独立使用一个缓存),对缓存服务器也有部分压力。
而使用ESI的方案,它需要运维团队的配置,甚至需要修改服务器配置的架构(添加了前端服务器),如果在多部门协调比较困难的项目中,这种方案还会遇到一些阻力。
但是它带来的好处确实显而易见的。首先ESI是一个W3C标准,我更倾向于采用标准的做法。而且Varnish这样的方向代理,它本来就擅长这个,它可以完全把这部分压力从应用程序服务器和缓存服务器上接管过来,而且会处理的更出色。

【数据缓存】https://mp.weixin.qq.com/s/rD6hln8bSLW07lNAgOmZ1g
[解决的问题] 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。
[原理]将数据写入读写更快的存储、离应用最近的位置(分布式应用、推荐系统)、离用户最近的位置(需要及时响应到客户端的服务)
[媒介]中间件: Varnish\Ngnix\Squid\Memcache\Redis\Ehcache,内容;文件、数据、对象;介质:CPU、内存、磁盘
[缓存设计] what?where?How?
what:1、热点数据 2、静态资源
Where:CDN、反向代理、分布式缓存服务器、本机
How:过期策略、固定时间、相对时间、同步机制、实时写入、异步刷新

【数据分布式缓存】大型网站分布式缓存 https://blog.csdn.net/chenxiaochan/article/details/71036497
[产生背景]

高并发环境下,大量的读写请求涌向数据库,磁盘的处理速度与内存显然不在一个量级,从减轻数据库的压力和提高系统响应速度两个角度来考虑,一般都会在数据库之前加一层缓存。由于单台机器的内存资源以及承载能力有限,并且,如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此,才催生出了分布式缓存。

    [memecache原理]

【数据库中间件】数据库中间件技术概貌了解一下、数据中间件技术详解
[解决的问题]为海量前台数据提供高性能、大容量、高可用性的访问
为数据变更的消费提供准实时的保障
高效的异地数据同步
[数据库中间件的分类]
分布式数据库分表分库
数据增量订阅与消费
数据库同步(全量、增量、跨机房、复制)
跨数据库(数据源)迁移

【分布式文件系统】分布式文件系统
[主流的分布式文件系统] Hadoop生态、以spark为核心的大数据中心
[应用背景及作用]企业对数据存储的要求越来越高,而且模式各异。分布式文件系统将数据存储在物理上分散的多个存储节点上,对这些节点的资源进行统一的管理与分配,并向用户提供文件系统访问接口,其主要解决了本地文件系统在文件大小、文件数量、打开文件数等的限制问题。参见

转载于:https://www.cnblogs.com/Erma/p/10531528.html

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

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

相关文章

H265摄像头如何实现网页直播

介绍 目前安防监控行业,基本所有的摄像头都支持H264编码,但是已经有部分摄像头开始支持H265,并且支持H265的摄像机已经越来越多。H265相比H264有着很多优势,是压缩更高,网络传输消耗的带宽更小,相同码率下H…

【Python selenium自动化环境配置】4步搞定ChromeDriver版本选择

很多刚做自动化的小伙伴,会在ChromeDriver版本选择时犯难,看来大家都被坑过,真正掌握独门绝技,都不是难事儿。 看好了主要步骤就4部 1、确定谷歌浏览器版本 2、找到谷歌浏览器版本与ChromeDriver版本对应关系 3、下载ChromeDriver…

[贴图]TVB香港大部分演员照片、姓名(值得收藏)

转载于:https://www.cnblogs.com/chinhr/archive/2006/11/15/561101.html

我的世界java笔刷指令_《我的世界》基本笔刷教程

《我的世界》是一款3D的第一人称沙盘游戏,所呈现的世界并不是华丽的画面与特效,而是注重在游戏性上面。玩家在游戏中做着建设与破坏两件事,但是透过像乐高一样的积木来组合与拼凑,轻而易举的就能制作出小木屋、城堡甚至城市&#…

idea创建springcloud主工程和springboot子项目

创建主工程,选择file-new-project,选择maven,直接next 填写GroupId包名,ArtifactId项目名,next-finish 创建子项目springboot,项目右击-new-module-Spring Initializr-->next 填写项目相关信息,next 选择Clou…

小程序实现无限瀑布流

实现瀑布流 实现效果 有好几种方案 1.用column-count属性把页面元素分为俩列或多列来实现 2.用display flex 分列来展示页面 3.比如说用js实现 我今天介绍的就是第三种,因为前两种都会有局限,实现的效果我们希望是左右左右,而不是分成两列去显…

python canny检测_【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)...

Canny 边缘检测算法Steps:高斯滤波平滑计算梯度大小和方向非极大值抑制双阈值检测和连接代码结构:Canny Edge Detection|Gaussian_Smoothing||convolution.py|||convolution()||gaussion_smoothing.py|||dnorm()|||gaussian_kernel()|||gaussian_blur()|Sobel_Filte…

java 拖放文字_myeclipse2014如何实现jsp中的html代码的文字拖放

本帖最后由 liyihongcug 于 2015-3-5 16:53 编辑把 jsp打开 (visual jsp editor)之后上班区 单击右键 show --- pallette就可以了感叹myeclipse确实强大的 标签技术强于.net mvc强。vs2013能实现iis无需安装的情况下 动态指定 某个页面为首选 启动 --------------------希望2…

因缺思厅的绕过

看一下页面源码,看到source.txt。所以进入同目录下的source.txt 代码审计下,并且百度了一些函数。过滤了很多关键字,因此常规的SQL注入没有头绪。想了挺久,因为要满足三个条件。1:不能输入过滤的关键字2:只…

Python自制微信机器人:群发消息、自动接收好友

运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求、群发文章、自动回复等操作,但颇有不便。 举几个场景: 突然在外面看到一篇文章很好,临时写了一篇,想群发一下。好…

记一次webpack4+react+antd项目优化打包文件体积的过程

背景 最近自己整了一个基于webpack4和react开发的博客demo项目,一路整下来磕磕碰碰但也实现了功能,就准备发到阿里云上面去看看,借用了同事的阿里云小水管服务器,配置完成之后首页加载花了十几秒,打开控制台network查看…

[19/03/16-星期六] 常用类_Date时间类DateFormat类

一、Date时间类 计算机中 以1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) 用ong类型的变量来表示时间,如当前时刻数值:long now new System.currentTimeMillis(); 【常用方法】 1. Date() 分配一个Date对象&a…

实验一作业

Part1:实验总结体会 1.实验过程对程序编码的使用不熟练,经常在书写代码过程中有停顿与疑惑,但熟能生巧,经过训练还是有不少收获; 2.实验内容不够严谨,容易犯小错误,还是需要勤加练习&#xff1b…

php7引用计数,PHP7 引用计数 读书笔记

PHP7 引用计数 读书笔记每个 PHP 变量存在一个加 "zval" 的变量容器中. 一个 zval 变量容器, 除了包含变量的类型和值, 还包括两个字节的额外信息.1.is_ref : 是一个 bool 值, 用来标识这个变量是否属于引用集合. 通过这个字节, PHP 引擎才能把普通变量和引用变量区分…

焦呼?焦矣!

焦了。做了个香蕉蛋糕。总觉得它还没熟,就让它没完没了地烤着。于是焦了。可里面居然还是湿润的。是蛋糕的问题,还是6寸模的问题,还只是人的问题?烤一半时,爹临出门时,过来往上头按了一大拇指。很好&#x…

AJAX(2),我的第一个AJAX程序

首先&#xff0c;在VS2005中新建一个网站&#xff0c;拖入一个Button和Text,设置Button的客户端事件为userCheck(),<asp:TextBox ID"username"runat"server"></asp:TextBox><input type"button"name"check"value"…

[导入]ASP.NET 2.0中Page事件的执行顺序

文章来源:http://blog.csdn.net/21aspnet/archive/2007/03/20/1535517.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2007/03/21/816354.html

[导入]C#中TextBox只能输入数字的代码

文章来源:http://blog.csdn.net/21aspnet/archive/2007/03/20/1535640.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2007/03/21/816242.html

实验1c语言开发环境使用和数据类型、运算符和表达式

实验结论 由于这一次是第一次做实验有很多东西不熟悉 比如忘记加分号&#xff0c;用中文输入法打不对符号等等。总之经过这实验我学到了很多。#include <stdio.h> int main() {int x;printf("输入一个整数: \n");scanf("%d",&x);// 在处填写相应…

Nhibernate学习起步之many-to-one篇(转)

1. 学习目的: 通过进一步学习nhibernate基础知识&#xff0c;在实现单表CRUD的基础上&#xff0c;实现两表之间one-to-many的关系. 2. 开发环境必要准备 开发环境: windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition 必要准备: 学习上篇文章单…