WEB开发基础知识(一)
集群与分布式:
1、相同点:集群和分布式都是需要使用多台服务器进行处理的。
2、区别:集群是每台服务器都具有相同的功能,处理请求时时调用哪台服务器都可以,主要起分流的作用。分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器。这样就可以提高一个请求的处理速度。集群和分布式是可以同时使用的
3、集群的方式:一种是静态资源集群:一些资源(js,html,图片)服务器的集群。另一种是应用程序集群,该集群方式最常见也是最核心的问题就是Session同步问题。Session同步有两种处理方式:第一种在Session发生变化后自动同步到其他服务器,另一种:使用一个程序统一管理Session,所有集群服务器使用同一Session。Tomcat默认使用第一种方式,简单配置便可以实现。第二种可以使用Memcached等高效的缓存程序来统一管理Session,然后再应用程序中通过重新Request并覆盖getSession方法来获取指定服务器中的Session。第三种:Session需要同步的本质原因就是不同的服务器给同一个用户提供服务,如果负载均衡在分配请求时可以将同一个用户(按IP)分配到同一台服务器进行处理,就不需要Session同步的问题了。如果需要考虑到稳定性,防止宕机丢失数据,可以将集群服务器分为多个组,然后再小范围的组内进行Session同步。
4、集群的负载均衡:接受到请求后具体分配到哪个服务器去处理的问题。可以使用nginx等软件处理实现。
反向代理服务器和代理服务器
1、代理服务器:是代替我们获取想要的资源,然后将结果间接的返回给我们,所要获取的资源是我们主动告诉代理服务器的,如:我们要访问FaceBook,但直接访问不了,就可以让代理服务器访问,然后将结果返回给我们。
2、反向代理服务器:我们正常访问一台服务器的时候,服务器自己调用了别的服务器的资源结果返回给我们。
3、代理服务器是我们主动使用的,是为我们服务的,不需要有自己的域名。反向代理服务器是服务器自己使用的,我们并不知道,它有自己的域名,我们访问它和访问正常的网址没有任何区别。
4、反向代理服务器可以和实际处理请求的服务器再同一台主机上,并且一台反向代理服务器可以访问多台实际处理请求的服务器。
5、反向代理服务器作用:
5.1、可以作为前端服务器跟实际处理请求的服务器(Tomcat)集成
5.2、可以用在做负载均衡。
5.3、用来转发请求,可以将不同类型的资源请求转发到不同的服务器去处理,可以将动态资源转发到Tomcat等,将图片等静态资源请求转发到静态资源服务器,另外也可以在Url地址结构发生变化后将新地址转发到原来的就旧地址上。
CDN
1、CDN是一种特殊的集群页面缓存服务器,它和普通集群的多台页面缓存服务器比,主要是它存放的位置和分配请求的方式有点特殊。CDN服务器是分布在全国各地的。CDN的每个节点就是一个页面缓存服务器。当接受到请求后会将请求分配到最合适的CDN服务器节点来获取数据,如果分配的CDN服务器没有请求资源的缓存,就会从主服务器进行获取并CDN缓存,下次相同请求直接返回缓存的页面。
2、CDN分配请求的方式:用专门的CDN域名解析服务器在解析域名的时候就分配好的,一般做法是在ISP(服务提供者)哪里使用CNAME将域名解析到一个特定的域名,然后再将解析到域名用专门的CDN服务器解析到相应的CDN节点。