服务部署

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44869242/article/details/96964392

1.Tomcat与Nginx区别与各自的用途.
nginx常用做静态内容服务和反向代理服务器,以及页面前端高并发服务器。适合做负载均衡,直面外来请求转发给后面的应用服务(tomcat什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西。大部分适用于静态资源文件的访问(图片,文件)

tomcat 更适合做部署jsp页面的项目

2. LVS的负载平衡方式有哪些?
VS/NAT:通过网络地址转换实现的虚拟服务器。Director将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server。大并发访问时,调度器的性能成为瓶颈。

VS/DR:直接使用路由技术实现虚拟服务器。通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。

VS/TUN:通过隧道方式实现虚拟服务器。Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端。

3.写出至少四种LVS负载平衡的调度算法
轮询(Round Robin)

加权轮询(Weighted Round Robin)

最少连接(Least Connections)

加权最少连接( Weighted Least Connections )

基于局部性的最少链接(Locality-Based Least Connections)

4.HAProxy工作模式有哪些?
mode http:客户端请求被深度分析后再发往服务器。

mode tcp:在客户端与服务器这间建立全双工会话,不检查第七层信息。

mode health:仅做健康状态检查,已经不建议使用

2 HTTP Keep-alive事务模型的特点是什么?

参考答案

一次连接可以传输多个请求;

客户端需要知道传输内容的长度,以避免无限期的等待传输结束;

降低两个HTTP事务间的延迟;

需要相对较少的服务器资源。

5. HAProxy配置文件有哪些组成部分?
default:为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置;

frontend:描述集群接收客户端请求的信息集合;

backend:描述转发链接的后端服务器集合;

listen:把frontend和backend结合到一起的完整声明。

6.LVS 三种工作模式原理、以及优缺点比较

一、NAT模式(VS-NAT)

原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。

缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

二、IP隧道模式(VS-TUN)

原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

三、直接路由模式(VS-DR)

原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

7.LVS简介?
LVS 是 Linux Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务[不是很理解]

8.什么是七层的负载均衡和4层的负载均衡,我们的访问请求经过这两种负载均衡都做了些什么处理?

七层负载均衡是基于URL等应用层的负载均衡;请求经过七层时,七层负载均衡接受虚拟url请求,根据调度算法转发请求到后台服务器

四层负载均衡是基于IP+端口的负载均衡;请求经过四层时,四层负载均衡根据请求的IP和端口,根据调度算法将请求转发到后台。

9.nginx upstream的容错机制是怎么样的(有台机器挂掉了,nginx怎么处理的)
nginx收到客户端的请求,将请求根据调度算法转发给后台服务器,后台服务器防问被拒接或者返回错误信息。nginx将其暂停一段时间,在这段时间内不再将请求转发给该服务器,并将请求转发给后台的其他服务器响应。

10.NGINX代理负载均衡的调度算法有哪些?具体实现时的现象是什么?
1.轮询(默认):每个请求按时间顺序逐一分配到不同的后端,如果后台某台服务器宕机,自动剔除故障系统,使用户访问不受影响,这种方式简便,成本低,但是可靠性低,负载均衡不均衡,适用于图片服务器集群和纯静态页面服务器集群。

2.weight(权重):weight的值越大分配到访问概率越高,主要用于后端每台服务器性能不均衡的情况下,或者仅仅为在主从的情况下设置不同的权值,达到合理有效的利用主机资源。

3.IP_HASH(访问IP):每个请求按访问的哈希结果分配,使来自同一个IP的访问固定一台后端服务器,并且可以有效解决动态网页存在的session的共享问题。

4.FAIR(第三方):比weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能的进行均衡负载,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。nginx本身不支持fair,如果需要这种调度算法,则需要安装upstream_fair模块。

5.URL_HASH(第三方):按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。这种调度算法需要安装nginx的hash软件包

11.为什么是四层的负载均衡,而不是其他层
在四层模式下,仅仅只是流量转发或者是TCP的porxy。七层是full proxy,需要分析协议。显然四层的转发效率更快,但功能少了许多。MySQL的负载均衡仅仅只是发生在网络层,所以选四层代理。

12.keepalived的工作原理是什么,使用的是什么协议?
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据vrrp的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

13.nginx的七层代理有什么好处?
请求如果直接发到同步处理的后端,那么从收到请求到把响应发出去的这段时间中,一个进程的资源就被占用了。在慢链接的情况下,这个进程除了处理之外,大多数时间基本耗费在等待上,而nginx有异步非阻塞模型,它可以通过基于事件的方式同时处理和维护多个请求,而后端只需要做逻辑计算,节约了等待时间去处理更多的请求。

动态页面的IO性能不好,nginx可以将请求缓存下来,再将完整的请求转发给后端服务器做处理,减少后端服务器的等待时间。

14.DNS/智能DNS/CDN原理是什么?
DNS正向解析将客户端请求的域名转换成IP地址、反向解析将IP转换成域名。

智能DNS在DNS的基础上通过匹配客户端的IP将请求分流到最近的服务器上,达到负载均衡。

CDN在DNS和智能DNS的基础上,将客户端的请求转给后台真实服务器,返回给客户端的同时,缓存到本地服务器上,下次客户端再次访问该页面时直接将缓存返回给客户端。

猜你喜欢

转载自blog.csdn.net/qq_44869242/article/details/96964392