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,但是几百台服 ...
随机推荐
- 几种常见空间滤波器MATLAB实现
本文链接:https://blog.csdn.net/LYduring/article/details/80443573 一.目的实现算术均值滤波器.几何均值滤波器.中值滤波器.修正的阿尔法均值滤波器 ...
- Android中为什么主线程不会因为Looper.loop()方法造成阻塞
很多人都对Handler的机制有所了解,如果不是很熟悉的可以看看我 如果看过源码的人都知道,在处理消息的时候使用了Looper.loop()方法,并且在该方法中进入了一个死循环,同时Looper.lo ...
- GitHub上最著名的Android播放器开源项目大全
GitHub上最著名的Android播放器开源项目大全 ...
- PorterDuffXfermode之PorterDuff.Mode.MULTIPLY
package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.B ...
- ORA-00911: invalid character 错误解决集锦
转: ORA-00911: invalid character 错误解决集锦 参考https://www.linuxidc.com/Linux/2017-05/144361.htm ORA-00911 ...
- sed替换 - 含斜杠(\)和Shell变量
gen_image.bat中的内容如下: FOTARomPacker.exe -i .\_ini\FOTARomPacker.ini -o .\_Output\a.bin @IF %ERRORLE ...
- 生成count位随机数工具类
工具类 import java.util.Random; /** * 生成6位随机数字 */ public class GeneratorCode { /** * * @Title: getCode ...
- windows服务器入门 安装配置IIS和ASP
本人以windows2012R2为例 其他版本都大同小异 可以按照这个来 1) 点击Windows云服务器左下角[开始(Start)],选择[服务器管理器(Server Manager)],打 ...
- Information Cartography
作者:Dafna Shahaf 会议:ACM 2015. 研究大背景:自动化地从很大数据集中提取结构化的知识变得越来越难.在本篇文章中,我们将探索我们在文献中(25,26,27)中创立的方法来自 ...
- mysql 开启log-bin功能
今天搜索了一下增量备份脚本,简单查了一下,增量备份是通过mysql binlog来做的,就是将某段时间内的操作,保存到某二进制日志当中.备份就是备这个日志,恢复也是通过它.然鹅,这里我们需要先开启 ...
