本周系统设计复习:
- SSH 如何工作?
- 学校应该必修的科目列表
- 8 个常见系统设计问题和解决方案
- 为什么 Nginx 如此流行?
SSH 如何工作?
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地连接到远程机器。它加密连接并提供各种机制进行身份验证和数据传输。
SSH 有两个版本:SSH-1 和 SSH-2。SSH-2 由 IETF 标准化。
它有三个主要层:
1. 传输层(Transport Layer)
传输层提供加密、完整性和数据保护,以确保客户端和服务器之间的安全通信。
2. 认证层(Authentication Layer)
认证层验证客户端的身份,确保只有授权用户可以访问服务器。
3. 连接层(Connection Layer)
连接层将加密和认证的通信多路复用到多个逻辑通道中。
8 个常见系统设计问题和解决方案
你知道大型生产系统中的这 8 个常见问题及其解决方案吗?是时候测试你的技能了!
1. 读重系统(Read-Heavy System)
问题:系统读取操作远多于写入。 解决方案:使用缓存使读取更快。
2. 高写入流量(High-Write Traffic)
问题:大量写入操作。 解决方案:
- 使用异步 worker 处理写入
- 使用由 LSM-Tree 驱动的数据库
3. 单点故障(Single Point of Failure)
问题:关键组件故障导致系统宕机。 解决方案:为数据库等关键组件实施冗余和故障转移机制。
4. 高可用性(High Availability)
问题:系统需要持续可用。 解决方案:
- 使用负载均衡确保请求去到健康的服务器实例
- 使用数据库复制提高持久性和可用性
5. 高延迟(High Latency)
问题:响应时间慢。 解决方案:使用内容分发网络减少延迟。
6. 处理大文件(Handling Large Files)
问题:存储和处理大文件。 解决方案:使用块存储和对象存储处理大文件和复杂数据。
7. 监控和告警(Monitoring and Alerting)
问题:难以检测和响应问题。 解决方案:使用集中式日志系统,如 ELK 栈。
8. 慢数据库查询(Slower Database Queries)
问题:查询性能差。 解决方案:
- 使用适当的索引优化查询
- 使用分片水平扩展数据库
为什么 Nginx 如此流行?
Nginx 是一个高性能 Web 服务器和反向代理。
它遵循主 - 工作进程模型,有助于其稳定性、可扩展性和高效的资源利用。
主进程负责读取配置和管理 worker 进程。Worker 进程使用事件驱动的非阻塞 I/O 模型处理传入连接。
由于其架构,Nginx 擅长支持多种功能,如:
- 高性能 Web 服务器
- 反向代理和负载均衡
- 内容缓存
- SSL 终止
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP124: How does SSH work?。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。