常见面试题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 定理。

目录
相关文章
|
2月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
358 2
|
存储 缓存 负载均衡
Nginx入门笔记
Nginx入门笔记
527 0
|
2月前
|
缓存 前端开发 JavaScript
有哪些文件适合阿里云CDN分发?
静态、高频访问且对加载速度要求高的文件(如网页、图片、视频、下载文件)适合CDN加速,可提升性能与性价比;动态内容、私有数据、频繁更新或敏感资源则不宜使用。合理选择分发策略,优化体验并降低成本。
|
2月前
|
CDN
怎么调整阿里云CDN配额?
阿里云CDN助力网站加速,配额管理关乎性能与成本。本文详解带宽、流量、请求数配额定义,指导用户查看及申请提升配额,并解析费用影响与优化策略,助您合理规划资源,降本增效。
|
2月前
|
边缘计算 缓存 双11
阿里云渠道商:什么时候应该使用阿里云 CDN 预热?
阿里云CDN预热可将资源提前分发至边缘节点,降低首字节时间50%以上,减轻源站压力。适用于大促活动、大文件发布、定期更新、突发流量及APP资源更新等场景,提升访问速度与稳定性。首次访问求快用预热,内容更新生效用刷新。
|
2月前
|
存储 SQL Prometheus
图文解析带你精通时序PromQL语法
[阿里云SLS可观测团队发布] 本文通过图文解析深入讲解PromQL的计算原理,涵盖其与SQL的差异、时间线模型、选点机制、聚合函数、窗口函数及常见非预期场景,帮助用户掌握PromQL的核心语法与执行逻辑。
644 10
|
2月前
|
数据库 微服务
常见面试题19
BASE理论提出“基本可用、软状态、最终一致性”,是分布式系统中对CAP定理的实践妥协。相比强一致的刚性事务(ACID),它属于柔性事务,强调高可用与最终一致,适用于Seata等分布式事务方案中的AT、TCC、SAGA模式,而非传统2PC的强一致性。
67 7
|
2月前
|
NoSQL API 调度
常见面试题20
分布式锁适用于共享资源互斥、防止重复操作、控制并发流量等场景,常见于超卖防控。可通过数据库、Redis(如Redisson)、ZooKeeper实现,其中Redisson适合高并发,ZooKeeper保证强一致性。
74 5
|
2月前
|
XML SQL Java
常见面试题15
Spring Boot配置优先级:命令行参数 > 系统属性 > application.properties > .yml > .yaml;自动配置基于@Import与条件注解,SpringBoot3使用xxx.imports替代spring.factories。自定义starter需分离starter与autoconfigure模块。MyBatis支持XML或注解映射结果集,参数传递可用@Param或直接传对象/Map。
133 4
|
3月前
|
SQL Java 索引
常见面试题12
通过SkyWalking链路追踪或MySQL慢查询日志定位慢SQL,结合explain分析执行计划,优化索引与表设计,提升SQL性能。Spring中IOC实现对象托管,DI完成依赖注入,Bean默认单例非线程安全,作用域可配置,初始化时机分情况而定。
119 7