Java Web 深入分析(3) CDN
CDN (Content Delivery NetWork) 内容分发网络,它是构筑在现有互联网基础上的一种先进的流量分配网络。区别于镜像,相当于是 CDN = 镜像(mirror) +
缓存(Cache)+整体负载均衡(GSLB)。目前CDN 都已缓存网站中的静态数据为主,如CSS,JS,图片和静态页面等数据,用户从主服务器上请求到动态页面之后,再从CDN上下载这些静态数据,从而加速访问。
CDN目标:
- 可扩展性(Scalebility) 应对新增大量的数据,用户和事务的扩展性。低成本提供高质量的内容分发。
- 安全性(Security) 强调安全问题。
- 可靠性。容灾和负载均衡咯。
CDN架构:
如图用户去访问一个假设是css文件,先是想localserver发起请求,然后迭代解析回到这个域名的注册服务器去解析,然后通过cname解析到CDN全局负载均衡服务器,然后用户直接去这个CDN节点访问这个css文件咯,如果不存在就去源站请求。
3种负载均衡
链路负载均衡:dns服务器进行负载均衡,在解析中完成。

集群负载均衡:分为硬件和软件
- 硬件:非常昂贵的硬件设备,如F5 开始一旦坏掉就GG

- 软件: 通过代理服务器,可能会增加网络延时。LVS在IP层进行地址转发,HAProxy根据HTTP请求头进行转发。

- 操作系统负载均衡:利用操作系统的软中断和硬中断,来达到负载均衡。
CDN动态加速:这个是目前比较流行的一种优化技术。原理其实就是在CDN的DNS解析中通过动态链路探测技术来找到回源最好的一条路径,然后通过dns的调度将后面所有的请求都选在这条特定的路径上,从而加速用户的访问效率。所以一个用户在CDN节点遍布全国的情况下从一个CDN节点接入之后,可以选择一个最好的源站链路给用户。简单的方法就是每条链路去下一个特定大小的文件,然后找出这个链路列表里面耗时最小的。其实还要考虑带宽和安全等等成本。
如下图就是一个就是一个使用CDN加速网站访问的架构示意图

其中还包括了网站分布式文件系统、noSQL和搜索引擎技术等。
Java Web 深入分析(3) CDN的更多相关文章
- Java Web 深入分析(6) Tomcat
tomcat是什么:汤姆猫?Javaweb服务器? Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache ...
- Java Web 深入分析(8) Servlet工作原理解析
Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态We ...
- Java Web 深入分析(7) Jetty原理解析
1Jetty的基本架构 Jetty有一个基本的数据模型,这个模式就是handle,所有拷贝拓展的组件都被当做一个handler被添加到server中,然后由jetty统一管理. 1.1Jetty基本架 ...
- Java Web 深入分析(4) Java IO 深入分析
I/O问题可以说是现在海量数据时代下 ,I/O大部分web系统的瓶颈.我们要了解的java I/O(后面简称为(IO)) IO类库的基本结构 磁盘IO的工作机制 网络IO的工作机制 NIO的工作方式 ...
- Java Web 深入分析(12) JVM(2) 垃圾收集与内存分配
前言 java的内存分配和垃圾回收往往是影响系统性能和并发能力的主要因素,虚拟机提供许多的参数就是为了根据不同环境和请教下进行调优,没有最好的调优也没有固定的调优.需要我们深入的去了解jvm的各个垃圾 ...
- Java Web 深入分析(11) JVM(1)
前言 Java启动后作为一个进程运行在操作系统中,该进程要分配的内存有以下几个: 1.Java堆: 存储java内存区域,堆大小是在jvm启动时就像操作系统申请完成,其中 -Xmx和-Xms 分别表示 ...
- Java Web 深入分析(11) JVM 体系结构与工作方式
jvm体系 jvm简介 java virtual machine jvm体系详解 jvm工作机制 虚拟机怎么执行代码 jvm为何基于栈 执行引擎 执行引擎过程 java调用栈 总结
- Java Web 深入分析(10) Spring 实践
Spring helloworld [http://wiki.jikexueyuan.com/project/spring/hello-world-example.html] HelloWorld.j ...
- Java Web 深入分析(9) Session 和 Cookie
前言: session 和cookie都是为了保持服务器和客户端之间交互状态.如果一天的PV有几亿,而一个cookie占200个字节但是也会占用很多带宽?所以大访问量就引用session,但是几百台服 ...
随机推荐
- python wmi远程数据获取
- 为什么vue-cli创建的build文件下没有dev-server.js文件
在新版本的Vue开发中,通过vue-cli创建的build文件夹下面已经没有了旧版本中的dev-server.js文件新版本的vue已将dev-server.js与webpack.dev.conf.j ...
- SurfaceView概述和基本使用
Android屏幕刷新一遍时间间隔为16ms,如果view能够在16ms内完成所需要执行的绘图换作,那么在视觉上,界面就是流畅的,否则就会出现卡顿现象,在很多情况下,这些逻辑处理又是必须的,为了解决这 ...
- java如何生成 MD5?
java生成 MD5最简单方法 答: 复制以下方法即可使用,不用依赖任何第三方包 public static String MD5(String data) throws Exception { ...
- 【418】C语言ADT实现Quack(stack+queue)
quack.h #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct ...
- Java使用Apache Commons Net实现FTP功能
maven依赖: <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...
- 【Leetcode_easy】686. Repeated String Match
problem 686. Repeated String Match solution1: 使用string类的find函数: class Solution { public: int repeate ...
- CentOS7.2配置LNMP环境并安装配置网站WordPress
1,安装环境查看 2,安装MySQL5.7.22 下载MySQL wget https://downloads.mysql.com/archives/get/file/mysql-5.7.22-1.e ...
- Demo客户端相关规范 v1.0
目录 开发环境 开发工具 代码管理 项目代码 分支管理 名称管理 打包管理 存储路径 存储结构 测试包 正式包 名称管理 依赖组件 内部组件 外部组件 解决方案结构 解决方案命名 解决方案文件夹 项目 ...
- 【miscellaneous】视频浓缩摘要简介
视频摘要,就是以自动或者半自动的方式,通过分析视频的结构和内容存在的时空冗余,从原始视频中提取有意义的片段,将它们以某种特点的方式重新组合成紧凑的.能够充分表现视频语义内容的浓缩视频. 一.静态视频摘 ...
