深入分析javaWeb技术内幕的读书笔记(一)

目录

深入Web请求过程

1. headers

2. DNS

2.1 gTLD分布

2.2 DNS解析过程

2.3 清除DNS缓存

2.4 DNS和JVM

2.5 几种域名解析方式

2.6 CDN工作机制

2.7 负载均衡

2.8 CDN动态加速


1. headers

和java的httpclient相同的命令行操作是curl   -I 查看请求头信息   -H 添加请求头信息

2. DNS

2.1 gTLD分布

美国10  欧洲2 日本1

2.2 DNS解析过程

 

深入分析javaWeb技术内幕的读书笔记(一)_第1张图片

1.检查浏览器是否存在域名解析过的ip

2.检查计算机是否存在域名解析过的ip   在计算机中的hosts文件进行配置

3.向localDNSServer中的服务请求解析

4.3执行失败 需要向root DNS中请求解析

5.返回gTLD域名解析服务器地址(顶级域名服务器)

6.localDNSServer向5中的服务器地址发送请求

7.gTLD服务器查找并返回对应NameServer

8.NameServer查询对应域名和ip的映射关系,正常情况下根据域名获取目标ip记录,连同TTL值返回给localDNSServer服务器

9.NameServer将域名对应ip和TTL返回给localDNSServer,localDNSServer会把信息进行缓存。

10.把缓存结果返回给用户,用户进行缓存

eg:根域名(.) gTLDServer(.com) NameServer (taobao.com)  实际情况NameServer可能不止一个,localDNSServer也可能存在备份来进行缓存

2.3 清除DNS缓存

windows:ipconfig/flushdns

linux:/etc/init.d/nscd restart

2.4 DNS和JVM

JVM也会缓存DNS的解析结果,缓存在InetAddress类中完成。

缓存的设置在jre/lib/security/java.security文件中进行配置

深入分析javaWeb技术内幕的读书笔记(一)_第2张图片

如图,缓存策略存在两种,正确解析配置诶-1,永远生效,失败解析配置为10s失效时间。


修改缓存时间配置的四种方式:(用于服务器优化)

1.修改文件中的值

2.启动java时配置参数

 在JVM启动的时候增加启动参数来设置。

    A. 正确解析:-Dsun.net.inetaddr.ttl=xx

    B. 错误解析:-Dsun.net.inetaddr.negative.ttl=xx

3.通过system的setProperty方法来修改

    通过java.lang.System类在JVM启动后修改。

        System.setProperty("sun.net.inetaddr.ttl", "-1");
        System.setProperty("sun.net.inetaddr.negative.ttl", "10");

4.通过InetAddress类来实现修改,这里需要强调一下性能问题。

      如果每次都是创建实例,那么每次都是完整的DNS域名解析流程,太消耗时间。所以必须创建DNS的单例。(单例模式的实际使用


2.5 几种域名解析方式

  • A记录:全拼:Address  用途:解析域名对应的ip地址。需要注意的是多个域名可以解析到一个ip,多个ip不能对应一个域名。
  • MX记录:全拼:Mail Exchange 用途:将域名加的邮件服务器解析到自己的Mail Server
  • CNAME记录:全拼:别名解析  用于解析域名的别名 比如taobao.com 解析到yoofale.net
  • NS记录:为域名指定DNS服务器解析
  • TXT记录:为域名或者主机名设置说明

 

2.6 CDN工作机制

CDN是内容分布网络,通过镜像机制提高Internet中的信息流动速率。CDN的实现可以生动地表示为:CDN = 镜像+ 缓存+整体负载均衡。当然CDN主要用于静态数据。

深入分析javaWeb技术内幕的读书笔记(一)_第3张图片

 

 

2.7 负载均衡

负载均衡架构分为三种。

链路负载均衡:访问Global DNS Server,Global DNS Server来决定访问哪个webServer,由于DNS在本地和local DNS Server都又缓存,所以这样如果没及时更新DNS信息,后果就是访问不到指定webServer。

集群负载均衡

①硬件负载均衡  专门的硬件设备来完成转发i那个球,缺点一是比较昂贵,缺点二是在出现访问量陡增无法动态扩容。

②软件负载均衡   优点是廉价,缺点是一次请求多次代理,延时严重。

操作系统负载均衡

通过操作系统级别的软中断或者硬件中断来达到负载均衡的效果

2.8 CDN动态加速

技术原理:在DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上进行回源,从而加速用户访问的效率。

你可能感兴趣的:(深入分析javaWeb技术内幕)