前端开发人员应该了解的 10 个后端术语
当后端开发人员在每日站会上汇报工作进展时,大多数前端开发人员都一头雾水。他们使用了很多我们前端开发人员听不懂的专业术语。但现在不一样了!😎
这篇文章旨在解释一些专业术语。你可能会问,为什么要学习这些术语呢?首先,学习它们能帮助你更好地理解产品的架构。其次,不要局限于前端——作为一名工程师,你也需要对其他领域有全面的了解。
记住,后端开发人员并不是想把人搞糊涂——他们只是在用他们领域的专业术语说话。让我们用更简单的术语来解释一下速率限制、负载均衡、代理等概念,揭开它们的神秘面纱。
准备好了吗?让我们开始吧!💪
1. 速率限制
速率限制是一种控制客户端(例如用户、应用程序或系统)在特定时间内可以向服务器发出的请求数量的方法。可以把它想象成交通警察,确保没有人过度使用或滥用服务器资源。
例如,服务器可能允许单个客户端每分钟发出 100 个请求。如果客户端超过此限制,服务器将拒绝额外的请求,通常会返回 429(请求过多)响应。
速率限制的应用:
- 防止滥用和过载:速率限制可确保没有单个用户或系统通过发送过多的请求使服务器过载,从而导致服务器崩溃。
- 控制成本:有助于避免资源(例如带宽或计算能力)使用量意外过高,从而节省成本。例如,限制免费用户帐户的 API 调用次数,以避免在未付费的情况下过度使用资源。
- 增强安全性:通过阻止攻击者的过度请求,帮助缓解 DDoS(分布式拒绝服务)等攻击。
2. 负载均衡
负载均衡是一种将传入请求或流量分配到多个服务器上的方法,以确保没有单个服务器过载。可以把它想象成交通警察引导车辆(请求)到不同的车道(服务器),从而保证一切运行顺畅。
例如,像Instagram这样的社交媒体平台,同时有数百万用户访问其服务器。负载均衡器不会将所有用户都发送到一台服务器,而是确保他们的请求分散到多台服务器上。
负载均衡的应用:
- 避免服务器过载:如果所有流量都涌向同一台服务器,服务器可能会因负载过重而崩溃。负载均衡通过均匀分配请求来防止这种情况发生。
- 提升性能和速度:通过分散流量,每个服务器处理可控数量的请求,从而为用户带来更快的响应速度。
- 扩展应用程序:随着流量的增加,您可以向池中添加更多服务器,负载均衡器将自动开始将流量分配到新服务器。
- 确保高可用性:如果一台服务器发生故障,负载均衡器会将流量重定向到其他正常工作的服务器,从而确保网站或服务保持在线状态。
3. 缓存
缓存是一种将频繁访问的数据临时存储起来的方法,以便可以快速检索数据,而无需反复从原始数据源获取。
想象一下,你把常用的食谱放在厨房台面上。这样,每次需要的时候,就不用在食谱里翻找,直接从台面上拿就能用,既省时又省力。
大多数后端系统都使用缓存来存储常用的数据库查询结果、API响应或预渲染的网页。Redis是后端开发人员常用的数据缓存方案。
缓存的使用:
- 提高性能:从缓存中获取数据比从原始来源(例如数据库或服务器)获取数据要快得多。
- 减少服务器负载:通过从缓存中提供数据,可以减少对后端的请求数量,防止后端过载。
- 应对高流量:在高峰使用期间,缓存有助于确保系统能够处理大量用户而不会变慢。
4. CDN
内容分发网络 (CDN) 是由分布在不同地点的服务器组成的网络,这些服务器协同工作,更快地向用户提供内容。它通过从地理位置更靠近用户的服务器提供内容,帮助加快网站、图像、视频和其他内容的加载速度。
想象一下,一座图书馆的书籍分散在不同的分馆。你不必每次都去总馆借书,而是可以去离你最近的分馆,这样就能更快地拿到书。CDN 的工作原理与之类似,它将网站内容的副本存储在多个位置。
CDN 的使用:
- 更快的加载速度:通过从离用户更近的服务器提供内容,CDN 减少了数据传输的距离,从而加快了加载速度。
- 更佳的可扩展性和可靠性:CDN 通过自动处理大量用户,使网站更容易扩展。如果一台服务器宕机,CDN 可以将流量路由到另一台服务器,而不会影响用户体验。
5. 微服务
微服务是一种架构风格,它将应用程序拆分成更小、更独立的多个服务,每个服务负责特定的功能。每个微服务就像一个小型积木,专注于一项任务,并与其他服务通信以构建完整的应用程序。
想象一下这样一家公司:每个部门(销售、市场营销、财务等)独立运作,但又相互协作以维持业务运转。类似地,在微服务架构中,每个服务(例如用户管理、支付处理等)独立运行,但又与其他服务交互以确保整个系统的正常运行。
微服务的反义词是单体架构,在单体架构中,应用程序的所有功能都组合成一个单一的、统一的服务或代码库。
微服务的使用:
- 可扩展性:由于每个服务都是独立的,因此您可以单独扩展它们。例如,如果支付处理服务的流量增加,您可以只扩展该服务,而不会影响其他服务。
- 灵活性和技术选择:每个微服务都可以使用不同的技术栈构建,团队可以根据具体任务选择最佳工具。例如,您可以使用 Python 进行数据分析,使用 Node.js 进行实时聊天,而无需担心兼容性问题。
6. API网关
API 网关是一个服务器,它充当所有客户端请求进入您系统的入口点。它负责将这些请求路由到相应的微服务,并处理负载均衡、身份验证、缓存和其他任务。简单来说,它就像大楼里的门卫,引导访客前往正确的部门。
想象一下,一个拥有许多部门(微服务)的大型组织,访客(用户)不是直接前往各个部门,而是通过中央接待处(API 网关)将他们引导到正确的位置。
Kong是一个流行的开源 API 网关,被后端开发人员广泛使用。
API网关的使用:
- 单一入口点:它通过为所有请求提供单一入口点来简化客户端与后端服务之间的交互,避免客户端直接与多个微服务通信。API 网关根据 URL、方法或其他因素将请求定向到正确的微服务,充当流量控制器的角色。
- 日志记录和监控:它会收集所有通过请求的日志和指标,帮助监控系统和调试问题。
- 安全性:它具有速率限制、负载均衡功能,并检查传入请求中的身份验证令牌。
7. Webhook
Webhook 是一种让一个应用程序在特定事件发生时向另一个应用程序发送实时更新或通知的方式。接收应用程序无需反复检查更新(轮询),发送应用程序会在需要时自动发送信息。
例如,当发生重要事情(如包裹递送)时,发件人(快递公司)会立即向您(收件人)发送短信,而无需您不断查看网站以获取更新。
Webhook 的使用:
- 实时通知:Webhook 提供即时更新,消除了定期轮询造成的延迟。
- 自动化:Webhooks 可实现不同应用程序或系统之间的自动工作流程。
8. 分片
分片是将大型数据库分割成更小、更易于管理的部分(称为分片)的方法。每个分片保存一部分数据,并作为独立的数据库运行。
可以将分页想象成根据类型将图书馆的书籍分成多个部分。这样,你无需在整个图书馆中搜索一本书,只需在相关的部分查找即可,从而使整个过程更快、更高效。
分片技术的应用:
- 性能提升:通过将数据分布在多个分片上,可以分散工作负载。这降低了单个数据库的负载,从而加快了查询处理速度。
- 高可用性:如果一个分片发生故障,只有部分数据会受到影响。系统的其余部分可以继续运行,从而提高了系统的弹性。
9. 代理
代理服务器是一种充当客户端(例如您的浏览器)和另一台服务器(例如网站)之间中介的服务器。您的请求不会直接连接到服务器,而是先经过代理服务器,由代理服务器将其转发到目标服务器,然后将响应发送回您。
你可以把它想象成一个中间人:如果你想给某人发送信息,你就把信息交给中间人,由他帮你传递信息并带回回复。
代理服务器的使用:
- 隐私和匿名性:代理服务器通过隐藏您的 IP 地址来保护您的身份。目标服务器只能看到代理服务器的 IP 地址,而看不到您的 IP 地址。
- 绕过限制:代理服务器允许用户通过向不同位置的服务器路由请求来访问在其所在地区可能被屏蔽的内容。
10. 消息队列
消息队列是一种用于在应用程序的不同部分之间(或应用程序之间)以可靠且有序的方式发送、存储和检索消息的系统。队列并不直接发送消息,而是像邮局一样运作:
- 系统的一部分(发送方)将消息放入队列中。
- 另一部分(接收器)会在准备好处理时接收它。
RabbitMQ和Apache Kafka是两种流行的消息队列系统。
消息队列的用途:
- 系统解耦:消息队列允许系统的不同部分独立工作。发送方和接收方无需相互了解,也无需同时工作。
- 异步处理:消息队列允许在后台处理任务,无需用户等待。例如,当您上传照片时,应用会立即确认上传,同时在后台处理调整大小和优化任务。
感谢阅读我的帖子!🙏 希望你今天有所收获。
请留下点赞🦄或评论💬,让更多像你一样的开发者看到这篇文章。🌱👨💻
文章来源:https://dev.to/thesanjeevsharma/10-backend-terms-every-frontend-developer-should-know-2o2h









