请详细阅读有关Web应用架构设计方面的说明,在答题纸上回答问题1至问题3。
【说明】
某软件公司开发运维了一个社交网站系统,该系统基于开源软件平台LAMP(Linux+Apache+MySQL+PHP)构建,运行一段时间以来,随着用户数量及访问量的增加,系统在Web服务器负载、磁盘I/O等方面出现了明显瓶颈,已不能满足大量客户端并发访问的要求,因此公司成立了专门的项目组,拟对系统架构进行调整以提高系统并发处理能力。目前系统采用了传统的三层结构,系统架构如图5-1所示。

针对目前出现的Web服务器负载过大问题,项目组决定在客户端与中间层Web服务器之间引入负载均衡器,通过中间层Web服务器集群来提高Web请求的并发处理能力。在讨论拟采用的负载均衡机制时,王工提出采用基于DNS的负载均衡机制,而李工则认为应采用基于反向代理的负载均衡机制,项目组经过讨论,最终确定采用李工提出的方案。请用200字以内的文字,分别简要说明两个机制的基本原理,并从系统执行效率、安全性及简易性等方面将两种机制进行对比,将对比结果填入表5-1中。

基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP 地址,在应答DNS 查询时,DNS 服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
反向代理负载均衡。反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。
(1)否
(2)是
(3)否
(4)是
(5)否
(6)是
(7)是
(8)否
DNS负载均衡的原理是利用DNS服务器为一个域名配置多个IP地址,在解析时通过轮询或简单策略将不同的请求分配给不同的服务器节点。这种方式部署简单,几乎不需要额外的硬件或软件支持,适合早期阶段的中小型网站。但是它的缺点也十分明显:其调度策略非常有限,通常只能基于轮询,无法感知后端服务器的实时运行状态。例如当某个节点宕机时,DNS服务器依旧可能将请求分配到该节点,导致客户端访问失败。此外,由于DNS解析结果会缓存于本地和各级DNS服务器,更新延迟较大,不能快速响应负载变化。另外,DNS方式要求每个节点都有公网IP,浪费资源且降低安全性。
反向代理负载均衡则通过在Web服务器集群前增加一个代理层,所有请求首先到达代理,再由代理根据后端节点的实际负载情况进行智能调度。例如可以基于当前连接数、CPU利用率等指标选择最优的节点。这不仅提升了调度的灵活性和执行效率,还能屏蔽后端节点的真实地址,从而增强安全性,防止直接攻击后端服务器。同时反向代理服务器本身还可以结合缓存机制,例如缓存静态资源,进一步提高性能。不过,它的缺点是部署和维护成本较高,当并发量极大时代理服务器本身可能成为瓶颈。
DNS负载均衡适合小规模、低成本场景,但在高并发和高安全需求下,反向代理机制更优。因此,项目组选择了李工提出的反向代理方案。