常见面试题18

简介: 正向代理代表客户端发起请求,隐藏客户端身份,用于访问控制与隐私保护;反向代理代表服务器接收请求,实现负载均衡与安全防护;CDN通过全球节点加速内容分发;Nginx可作反向代理实现轮询、权重等负载均衡策略;CAP定理指出分布式系统无法同时满足一致性、可用性与分区容错性。

什么是正向代理

正向代理是一种网络代理服务器的运作模式,它充当客户端与外部服务器之间的中间人,代理客户端发起的请求,并将这些请求转发给外部服务器。在正向代理的架构中,客户端无法直接访问目标服务器,而是通过正向代理服务器来代为发起连接。以下是正向代理的基本工作原理:

  1. 客户端发送请求:客户端向正向代理服务器发起请求,请求中包含了要访问的目标服务器的信息。
  2. 代理服务器转发请求:正向代理服务器接收到客户端的请求后,会代表客户端向目标服务器发起实际的连接请求。
  3. 目标服务器响应:目标服务器接收到代理服务器发起的连接请求后,会向代理服务器返回响应数据。
  4. 代理服务器响应客户端:代理服务器再将目标服务器的响应数据返回给客户端,客户端则认为这些数据是直接从代理服务器获取的。

常见使用场景:访问受限资源、保护客户端隐私、访问跨境内容

总的来说,正向代理充当客户端的代理,代替客户端发起连接和获取数据,为客户端提供了更多的灵活性和隐私保护。

什么是反向代理

反向代理(Reverse Proxy)是一种代理服务器的部署方式,它代表服务器接收客户端的请求,并将这些请求转发给内部的服务器。与正向代理不同,反向代理是对外隐藏了真实的服务器,并充当了客户端与内部服务器之间的中间人。客户端认为它们直接与反向代理通信,而不知道实际处理请求的是内部的服务器。

反向代理的工作流程如下:

  1. 客户端发送请求:客户端向反向代理服务器发送请求,通常是访问某个网站或服务。
  2. 反向代理处理请求:反向代理服务器接收到客户端的请求后,根据配置的规则和负载均衡策略,将请求转发给内部的一个或多个服务器。
  3. 内部服务器响应:内部服务器接收到来自反向代理的请求后,处理请求并生成响应数据。
  4. 反向代理返回响应:反向代理服务器将内部服务器的响应数据返回给客户端,客户端认为这些数据是直接从反向代理获取的。

反向代理的主要作用包括负载均衡、安全防护、缓存加速等。通过反向代理,可以提高服务器的性能、可靠性和安全性,同时隐藏了内部服务器的实际地址,增强了系统的安全性。

总的来说,反向代理充当服务器的代理,代替服务器处理客户端的请求和响应,为服务器提供了更好的性能和安全保护。

什么是CDN服务

CDN(内容分发网络)是指一组分布在全球各地的服务器网络,用于加速互联网上静态和动态内容的传输。CDN 服务通过将内容缓存到离用户更近的服务器上,以提高用户访问这些内容的速度和性能。CDN 的基本原理是利用就近性原则,让用户能够从距离更近、网络质量更好的服务器获取所需的内容,而不必直接访问原始服务器。

CDN 服务的主要特点包括:

  1. 加速访问速度:通过在全球各地部署服务器,CDN 可以使用户能够从距离更近的服务器获取内容,减少网络延迟,提高访问速度。
  2. 负载均衡:CDN 可以根据用户的位置和网络状况,自动将请求分发到最优的服务器,从而实现负载均衡,提高服务的稳定性和可靠性。
  3. 减轻源服务器压力:CDN 可以缓存大量的静态资源,并在用户请求时直接返回,减轻了源服务器的负担,提高了源服务器的处理能力。
  4. 安全防护:CDN 可以提供一定程度的安全防护,例如防御 DDoS 攻击、恶意请求等,保护源服务器免受攻击。

CDN 服务通常用于加速网站的访问速度,提高用户体验,同时也可以用于视频直播、软件分发等领域。许多大型的互联网公司和网站都会使用 CDN 服务来优化其内容的传输和分发。

总的来说,CDN 服务通过在全球范围内部署服务器,提高了内容的传输速度、稳定性和安全性,为用户和网站提供了更好的体验和保护。

Nginx的负载均衡

Nginx 是一个常用的高性能的 Web 服务器和反向代理服务器,它也可以用作负载均衡器。通过 Nginx 的负载均衡功能,可以将客户端的请求分发到多台后端服务器上,从而提高系统的性能、可靠性和可扩展性

Nginx 实现负载均衡的方式通常有两种:基于轮询的负载均衡和基于权重的负载均衡。

  1. 基于轮询的负载均衡:Nginx 默认的负载均衡方式是基于轮询的。当有新的请求到达时,Nginx 会按照事先配置好的后端服务器列表顺序,依次将请求转发给这些服务器。这样可以实现比较简单的负载均衡,但无法根据后端服务器的负载情况进行动态调整。
  2. 基于权重的负载均衡:除了默认的轮询方式外,Nginx 还支持基于权重的负载均衡。通过设置不同后端服务器的权重,可以让 Nginx 按照这些权重比例来分配请求,从而实现更灵活的负载均衡策略。

另外,Nginx 也支持其他负载均衡算法,如 IP 哈希、最小连接数等。这些算法可以根据具体的业务需求和场景选择合适的负载均衡策略。

CAP定理

分布式系统有三个指标:

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance (分区容错性)

它们的第一个字母分别是 CAP。Eric Brewer认为任何分布式系统架构方案都不可能同时满足这3个目标,这个结论就叫做 CAP 定理。

目录
相关文章
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
306 4
|
1月前
|
负载均衡 算法 Java
【SpringCloud(3)】Ribbon负载均衡:IRule原理轮询算法;LB负载均衡;loadbalancer和IRule组件;Ribbon和Ngin负载均衡的区别
Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端的负载均衡工具 简单地说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时、重试等。就在在配置文件中列出Load Balancer(LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机链接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法
338 136
|
1月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。
|
1月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
205 1
|
1月前
|
缓存 监控 安全
如何设置阿里云CDN的流量阈值以避免超额费用?
在信息爆炸时代,阿里云CDN助力网站加速。合理设置CDN阈值可提升性能、节省带宽、增强安全。本文详解阈值配置步骤与监控优化,助你高效利用资源。无账号者可通过翼龙云上云,享技术支持与优惠。
|
1月前
|
人工智能 定位技术 API
智能体(Agent):AI不再只是聊天,而是能替你干活
智能体(Agent):AI不再只是聊天,而是能替你干活
888 99
|
运维 监控 Linux
Linux运维工程师笔试题系列1(30题)
Linux运维工程师笔试题系列1(30题) 如果您对问题有疑问,或者认为答案不准确的,欢迎留言交流。 问题如下: 1. Linux下,为某个脚本赋予可执行权限() A chmod +x filename.sh B chown +x filename.sh C chmod +r filename.sh D chown +r filename.sh 2. Linux文件系统的目录结构是一棵倒挂的树,文件都按其作用分门别类地放在相关的目录中。
3595 0
|
1月前
|
存储 SQL Prometheus
图文解析带你精通时序PromQL语法
[阿里云SLS可观测团队发布] 本文通过图文解析深入讲解PromQL的计算原理,涵盖其与SQL的差异、时间线模型、选点机制、聚合函数、窗口函数及常见非预期场景,帮助用户掌握PromQL的核心语法与执行逻辑。
471 10
|
1月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。