一级域名服务器怎么看网站(什么叫一级域名和二级域名)

负载均衡的最大价值是让多个业务服务器的压力均衡。

服务端应用程序与客户端相比,面临着数据存储、流量调度、高并发等一系列集中式问题,本文所谈论的正是最重要的问题之一流量调度。

为什么需要流量调度?

主要原因是单台服务器的资源是有限的,由于宽带、内存等限制,导致的服务器连接数也有其上限。在遇到单台服务器瓶颈的时候,通常的做法是加入多台服务器进行分担压力,此时如何在多台服务器之间分配流量就成为了最大的问题。

一级域名服务器怎么看网站(什么叫一级域名和二级域名)

一次请求

一个基本的服务端程序的服务请求,通常是由一个请求包(Request)和一个应答包(Response)构成。这样一问一答就是一次完整的服务。

并发数

并发数就是指,单位时间里服务器处理的请求连接数量。指的是已经发送请求,但是未完成应答的连接数量。

IOPS

IOPS是指单位时间内系统能处理的请求数量,一般以每秒处理的请求数量为单位,请求通常为读或写数据操作请求。一般用来判断服务器的做事效率。

入口流量和出口流量

入口流量是指服务器每秒接收到的流量总量。计算方式为:

  • 平均每秒收到的请求包(Request)数量 * 请求包平均大小。

出口流量是指服务器每秒返回的流量总量,计算方式为:

  • 平均每秒返回的应答包(Response)数量 * 应答包平均大小。

流量调度方式

基于DNS解析的流量分发

一级域名服务器怎么看网站(什么叫一级域名和二级域名)

一个域名解析到多个IP

一个域名通过 DNS 解析到多个 IP,每个 IP 对应不同的服务端程序实例。这样就完成了流量调度。这样的流量调度方式,无法做到真正意义上的负载均衡。当用户在浏览器里输入www.baidu.com的时候,DNS是如何进行解析到IP的:

  1. 浏览器首先会在自己的缓存中查找是否有www.baidu.com对应的IP地址,如果存在,则进行之间返回,不存在则进入系统缓存查找。
  2. 系统查找host文件里,是否有www.baidu.com对应的IP地址,如果没用则进入路由器缓存查找。
  3. 当浏览器和系统中均未查到对应的IP时,就进入路由器进行查询(以上均属于客户端缓存)。
  4. 客户端未发现www.baidu.com的IP,则会进入互联网服务提供商缓存查询。(电信、联通等)。
  5. 如果服务提供商也未查询到该域名,则进请求根域名服务器(13个IP对应的根域服务器)进行查询。根域名服务器会查看区域域名记录(如:com、cn等),如果未查询到记录,则代表无此域名。
  6. 顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的IP地址告诉本地DNS服务器;
  7. 主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确记录;
  8. 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与web服务器建立链接。

在经过层层的缓存查询之后,DNS才能找到正确的IP映射。加入缓存的好处是是的DNS的解析更迅捷,常用的域名只需要一次解析,缓存浏览器端就可以进行使用。但是同样的缓存也带来了数据一致性的问题,即当域名对应的IP有变化时,客户端不能够及时得到响应,而请求到错误的IP上去。那这样做,对服务器的调度有哪些影响呢?

  1. 应用服务升级不便,当每个IP对应的服务停止后,还会有流量进来。
  2. 流量调度不均衡,虽然在DNS服务端已经更改了域名,但是客户端每次请求不一定都经过服务端。

基于硬件的负载均衡

常见的做法是通过改写请求报文的 MAC 地址,将请求发送到真实服务器,真实服务器将响应直接返回给客户。

一级域名服务器怎么看网站(什么叫一级域名和二级域名)

修改MAC请求过程

第 1 步,客户端发起请求,其 IP 报文中,源 IP 为用户的 CIP ,目标 IP 是 VIP;源 MAC 地址为 CMAC ,目标 MAC 地址为 DMAC。

第 2 步,请求包到达 LVS 调度器(Director Server)。我们保持原 IP 和目标 IP 不变,仅仅修改目标 MAC 地址为 RMAC,将请求转发到真实的业务服务器实例 RS(Real Server)。

第 3 步,RS 收到数据包并经过处理,直接响应发送给客户端。

整个过程其实是加入了一个调度器,同意接收客户端传来的请求,然后改写成真实的服务器MAC地址进行访问。我们只要给到调度器一定的流量转发策略,就可以得到想要的效果。同样的,基于硬件的负载均衡也有不足的地方:

  1. 引入了调度器进行流量分发,同样的流量压力也给到了调度器。所幸的是,现在基于F5等负载均衡硬件,还是可以承受很大的压力的。
  2. 无法检测服务器的状态,服务器出现异常情况还会有流量进入,解决这个异常只能通过客户端重试。

应用层负载均衡

应用层的负载均衡彻解决了硬件负载均衡的问题,接收到的请求,根据一定的算法转发到对应的服务器上,Nginx 和 Apache 都是常见的应用层负载均衡器,也叫做应用网关。

基于应用层的负载均衡,可以根据心跳检测等方式,更细节地了解到服务器状态,在检测到服务器状态异常时候,应用网关可以将请求转发给其他正常的机器。

结语

随着需求的发展,负载均衡不仅仅是完成流量调度,另外一层面就是给应用提供稳定升级,持续服务的能力。

虽然应用层的负载均衡看起来可以满足负载均衡的需求,但是在实际的使用过程中,通常是硬件加上软件结合的方式,以应对更大量的流量调度需求。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/89113.html