系统设计面试常见 50 个术语

原文:Top 50 System Design Terminologies You Must Know - https://medium.com/@TharunKumarReddyPolu/top-50-system-design-terminologies-you-must-know-3c78f5fb99c1

原文:Top 50 System Design Terminologies You Must Know - https://medium.com/@TharunKumarReddyPolu/top-50-system-design-terminologies-you-must-know-3c78f5fb99c1Master the Essential Terms to Ace Your System Design Interviews with Explanations, Practical Examples, and Comprehensive Resources

Master the Essential Terms to Ace Your System Design Interviews with Explanations, Practical Examples, and Comprehensive Resources掌握核心术语,通过解释、实际示例和丰富的资源,在系统设计面试中脱颖而出

掌握核心术语,通过解释、实际示例和丰富的资源,在系统设计面试中脱颖而出Top 50 System Design Terminologies word cloud - 系统设计术语词云

image

System design interview performance is always a critical factor in validating whether a candidate can come up with scalable and efficient systems. Knowledge of major terminologies will definitely help in acing these. Below are the top 50 must-know system design interview terminologies that we will explain with definitions and working examples, along with additional resources for learning.

系统设计面试的表现始终是检查候选人是否能够提出可扩展和高效系统的关键因素。掌握主要术语肯定会帮助你在面试中表现出色。以下是 50 个必须知道的系统设计面试术语,我们将通过定义和工作示例来解释这些术语,并提供额外的学习资源。

1. Scalability - 可扩展性

Definition: It is the ability of a system to support increased load by adding resources. 系统通过增加资源来支持更高负载的能力

DefinitionExample: Addition of more servers to handle the increase in web traffic. 增加更多服务器以应对增加的网络流量

ExampleLearn More: What is Scalability and How to Achieve it? 什么是可扩展性及如何实现?(https://www.geeksforgeeks.org/what-is-scalability-and-how-to-achieve-it-learn-system-design/)

Learn More# 2. Load Balancer - 负载均衡

  • Definition: Dividing the incoming network traffic among multiple servers so that no one server processes a large amount of load. 将进入的网络流量分配到多个服务器上,以避免单个服务器处理过多的负载
  • Example: Load balancing web traffic across multiple EC2 instances using the AWS Elastic Load Balancer(ELB) Service.使用 AWS 弹性负载均衡器 (ELB) 服务将网络流量均衡到多个 EC2 实例
  • Learn More: Understanding Load Balancer 理解负载均衡器(https://www.f5.com/glossary/load-balancer)

Definition: Dividing the incoming network traffic among multiple servers so that no one server processes a large amount of load. 将进入的网络流量分配到多个服务器上,以避免单个服务器处理过多的负载

DefinitionExample: Load balancing web traffic across multiple EC2 instances using the AWS Elastic Load Balancer(ELB) Service.使用 AWS 弹性负载均衡器 (ELB) 服务将网络流量均衡到多个 EC2 实例

ExampleLearn More: Understanding Load Balancer 理解负载均衡器(https://www.f5.com/glossary/load-balancer)

Learn More# 3. Microservices - 微服务

  • Definition: It is an architectural pattern forcing the structuring of an application as a collection of loosely coupled services. 这是一种架构模式,强制将应用程序结构化为一组松散耦合的服务。
  • Example: Breaking down a monolithic application into independent services responsible for user management, processing payments, and sending notifications. 将单体应用程序分解为负责用户管理、支付处理和通知发送的独立服务。
  • Learn More: What are Microservices? 什么是微服务(https://aws.amazon.com/cn/microservices/)

Definition: It is an architectural pattern forcing the structuring of an application as a collection of loosely coupled services. 这是一种架构模式,强制将应用程序结构化为一组松散耦合的服务。

**Definition:**Example: Breaking down a monolithic application into independent services responsible for user management, processing payments, and sending notifications. 将单体应用程序分解为负责用户管理、支付处理和通知发送的独立服务。

**Example:**Learn More: What are Microservices? 什么是微服务(https://aws.amazon.com/cn/microservices/)

Learn More# 4. CAP Theorem - CAP 定理

  • Definition: It states that at best, only two out of three guarantees can be gained in a distributed system: Consistency, Availability, and Partition Tolerance. 它指出在分布式系统中,最多只能获得一致性、可用性和分区容忍性三者中的两个。
  • Example: When to Trade Off Consistency for Availability — And Vice Versa — in Distributed Database Design. 在分布式数据库设计中权衡一致性和可用性的取舍。
  • Learn More: Understanding CAP Theorem 理解 CAP 定理(https://www.scylladb.com/glossary/cap-theorem/)

Definition: It states that at best, only two out of three guarantees can be gained in a distributed system: Consistency, Availability, and Partition Tolerance. 它指出在分布式系统中,最多只能获得一致性、可用性和分区容忍性三者中的两个。

DefinitionExample: When to Trade Off Consistency for Availability — And Vice Versa — in Distributed Database Design. 在分布式数据库设计中权衡一致性和可用性的取舍。

ExampleLearn More: Understanding CAP Theorem 理解 CAP 定理(https://www.scylladb.com/glossary/cap-theorem/)

Learn More# 5. Sharding - 分片

  • Definition: It involves breaking down a large database into smaller pieces called shards for better management. 将大型数据库拆分为称为分片的小块以便更好地管理。
  • Example: Sharding a user database based on geographic region. 根据地理区域对用户数据库进行分片。
  • Learn More: Database Sharding Explained 数据库分片解释(https://aws.amazon.com/cn/what-is/database-sharding/)

Definition: It involves breaking down a large database into smaller pieces called shards for better management. 将大型数据库拆分为称为分片的小块以便更好地管理。

DefinitionExample: Sharding a user database based on geographic region. 根据地理区域对用户数据库进行分片。

ExampleLearn More: Database Sharding Explained 数据库分片解释(https://aws.amazon.com/cn/what-is/database-sharding/)

Learn More# 6. Latency - 延迟

  • Definition: This gets defined as the time that it takes for data to travel from point A to point B. 从系统 A 点到 B 点花费的时间
  • Example: Measuring the delay involved in message delivery through a chat application. 测量通过聊天应用程序发送消息的延迟。
  • Learn More: Latency explained! 延迟解释!(https://www.cloudflare.com/zh-cn/learning/performance/glossary/what-is-latency/)

Definition: This gets defined as the time that it takes for data to travel from point A to point B. 从系统 A 点到 B 点花费的时间

DefinitionExample: Measuring the delay involved in message delivery through a chat application. 测量通过聊天应用程序发送消息的延迟。

ExampleLearn More: Latency explained! 延迟解释!(https://www.cloudflare.com/zh-cn/learning/performance/glossary/what-is-latency/)

Learn More# 7. Throughput - 吞吐量

  • Definition: A measure of the quantity of data a system processes in some timeframe 系统在一段时间内处理的数据量的衡量标准
  • Example: Requests processed by a web server in one second. 网络服务器每秒处理的请求数量
  • Learn More: Throughput in Computer Networks 计算机网络中的吞吐量(https://www.techtarget.com/searchnetworking/definition/throughput)

Definition: A measure of the quantity of data a system processes in some timeframe 系统在一段时间内处理的数据量的衡量标准

DefinitionExample: Requests processed by a web server in one second. 网络服务器每秒处理的请求数量

ExampleLearn More: Throughput in Computer Networks 计算机网络中的吞吐量(https://www.techtarget.com/searchnetworking/definition/throughput)

Learn More# 8. Cache - 缓存

  • Definition: Any hardware or software component that stores data to obviate future requests for the same data, serving It quickly. 一种硬件或软件组件,用于存储数据以避免将来对相同数据的请求,并快速响应。
  • Example: Implementing Redis caching for repeated database queries. 为重复的数据库查询实施 Redis 缓存。
  • Learn More: Caching Explained 缓存解释(https://aws.amazon.com/cn/caching/)

Definition: Any hardware or software component that stores data to obviate future requests for the same data, serving It quickly. 一种硬件或软件组件,用于存储数据以避免将来对相同数据的请求,并快速响应。

DefinitionExample: Implementing Redis caching for repeated database queries. 为重复的数据库查询实施 Redis 缓存。

ExampleLearn More: Caching Explained 缓存解释(https://aws.amazon.com/cn/caching/)

Learn More# 9. Content Delivery Network (CDN) 内容分发网络

  • Definition: A server system, geographically dispersed, that shows Web content to a user based on the geographical location from which he is accessing. 一个地理上分布的服务器系统,根据用户访问的地理位置向其显示 Web 内容
  • Example: Using Cloudflare CDN for faster web page loading. 使用 Cloudflare CDN 加快网页加载速度
  • Learn More: What is a CDN? 什么是 CDN(https://www.cloudflare.com/zh-cn/learning/cdn/what-is-a-cdn/)

Definition: A server system, geographically dispersed, that shows Web content to a user based on the geographical location from which he is accessing. 一个地理上分布的服务器系统,根据用户访问的地理位置向其显示 Web 内容

DefinitionExample: Using Cloudflare CDN for faster web page loading. 使用 Cloudflare CDN 加快网页加载速度

ExampleLearn More: What is a CDN? 什么是 CDN(https://www.cloudflare.com/zh-cn/learning/cdn/what-is-a-cdn/)

Learn More# 10. REST API

  • Definition: a type of architectural style designed to build web services where data is accessed and manipulated using HTTP requests. 一种架构风格,旨在构建通过 HTTP 请求访问和操作数据的 Web 服务。
  • Example: Designing the Social Media API by REST(Representational State Transfer) principles. 设计基于 REST(表示性状态转移)原则的社交媒体 API。
  • Learn More: REST API Tutorial (https://restfulapi.net/)

Definition: a type of architectural style designed to build web services where data is accessed and manipulated using HTTP requests. 一种架构风格,旨在构建通过 HTTP 请求访问和操作数据的 Web 服务。

DefinitionExample: Designing the Social Media API by REST(Representational State Transfer) principles. 设计基于 REST(表示性状态转移)原则的社交媒体 API。

ExampleLearn More: REST API Tutorial (https://restfulapi.net/)

Learn More# 11. GraphQL

  • Definition: It is a language designed to query data, so it is much more powerful, efficient, and flexible than REST. 一种用于查询数据的语言,比 REST 更加强大、高效和灵活。
  • Example: Using GraphQL to query user information in a single request. 使用 GraphQL 在单个请求中查询用户信息
  • Learn More: GraphQL Introduction(https://www.digitalocean.com/community/tutorials/an-introduction-to-graphql)

Definition: It is a language designed to query data, so it is much more powerful, efficient, and flexible than REST. 一种用于查询数据的语言,比 REST 更加强大、高效和灵活。

DefinitionExample: Using GraphQL to query user information in a single request. 使用 GraphQL 在单个请求中查询用户信息

ExampleLearn More: GraphQL Introduction(https://www.digitalocean.com/community/tutorials/an-introduction-to-graphql)

Learn More# 12. ACID

  • Definition: A set of properties ensuring reliable processing of database transactions. The properties are Atomicity, Consistency, Isolation, and Durability. 确保数据库事务可靠处理的一组属性。属性包括原子性、一致性、隔离性和持久性。
  • Example: Ensuring that a banking transaction has ACID properties prevents corrupted data. 确保银行交易具有 ACID 属性,以防止数据损坏。
  • Learn More: ACID Properties in Databases (https://www.geeksforgeeks.org/acid-properties-in-dbms/)

Definition: A set of properties ensuring reliable processing of database transactions. The properties are Atomicity, Consistency, Isolation, and Durability. 确保数据库事务可靠处理的一组属性。属性包括原子性、一致性、隔离性和持久性。

DefinitionExample: Ensuring that a banking transaction has ACID properties prevents corrupted data. 确保银行交易具有 ACID 属性,以防止数据损坏。

ExampleLearn More: ACID Properties in Databases (https://www.geeksforgeeks.org/acid-properties-in-dbms/)

Learn More# 13. BASE

  • Definition: An alternate to ACID that emphasizes Availability and Partition tolerance over strict-Consistency. Basically Available, Soft state, Eventually consistent system. ACID 的替代方案,更强调可用性和分区容忍性,而不是严格的一致性。基本可用、软状态、最终一致系统。
  • Example: Design of a highly available, eventually consistent NoSQL database. 设计高度可用、最终一致的 NoSQL 数据库。
  • Learn More: BASE vs ACID (https://aws.amazon.com/cn/compare/the-difference-between-acid-and-base-database/)

Definition: An alternate to ACID that emphasizes Availability and Partition tolerance over strict-Consistency. Basically Available, Soft state, Eventually consistent system. ACID 的替代方案,更强调可用性和分区容忍性,而不是严格的一致性。基本可用、软状态、最终一致系统。

DefinitionExample: Design of a highly available, eventually consistent NoSQL database. 设计高度可用、最终一致的 NoSQL 数据库。

ExampleLearn More: BASE vs ACID (https://aws.amazon.com/cn/compare/the-difference-between-acid-and-base-database/)

Learn More# 14. NoSQL

  • Definition: A type of database designed to promote storage and retrieval of data modelled in ways other than the tabular relationships used in relational databases. 一种数据库类型,旨在促进以关系数据库中使用的表格关系之外的方式存储和检索数据。
  • Example: Using MongoDB for a document-based data store. 使用 MongoDB 作为基于文档的数据存储。
  • Learn More: What is a NoSQL Database? (https://www.mongodb.com/resources/basics/databases/nosql-explained)

Definition: A type of database designed to promote storage and retrieval of data modelled in ways other than the tabular relationships used in relational databases. 一种数据库类型,旨在促进以关系数据库中使用的表格关系之外的方式存储和检索数据。

DefinitionExample: Using MongoDB for a document-based data store. 使用 MongoDB 作为基于文档的数据存储。

ExampleLearn More: What is a NoSQL Database? (https://www.mongodb.com/resources/basics/databases/nosql-explained)

Learn More# 15. SQL

  • Definition: It is the standard language used for storing, manipulating, and retrieving data in relational databases. 它是用于在关系数据库中存储、操作和检索数据的标准语言。
  • Example: Writing SQL queries to get data back from a relational database. 写 SQL 查询从关系数据库中获取数据
  • Learn More: SQL Tutorial (https://www.geeksforgeeks.org/sql-tutorial/)

Definition: It is the standard language used for storing, manipulating, and retrieving data in relational databases. 它是用于在关系数据库中存储、操作和检索数据的标准语言。

**Definition:**Example: Writing SQL queries to get data back from a relational database. 写 SQL 查询从关系数据库中获取数据

**Example:**Learn More: SQL Tutorial (https://www.geeksforgeeks.org/sql-tutorial/)

Learn More# 16. Database Indexing - 数据库索引

  • Definition: It is a data structure technique that allows quick searching and access to data from a database. 这是一种数据结构技术,允许快速搜索和访问数据库中的数据。
  • Example: Create indexing on the column of User ID for searching speed enhancement. 为提高搜索速度,在用户 ID 列上创建索引
  • Learn More: Database Indexing (https://www.codecademy.com/article/sql-indexes)

Definition: It is a data structure technique that allows quick searching and access to data from a database. 这是一种数据结构技术,允许快速搜索和访问数据库中的数据。

DefinitionExample: Create indexing on the column of User ID for searching speed enhancement. 为提高搜索速度,在用户 ID 列上创建索引

ExampleLearn More: Database Indexing (https://www.codecademy.com/article/sql-indexes)

Learn More# 17. Replication - 复制

  • Definition: A process of copying and maintaining database objects in a multitude of databases which make up a distributed database system. 在多个数据库中复制和维护数据库对象的过程,这些数据库组成一个分布式数据库系统。
  • Example: It involves allowing a database to be highly available across different geographical locations using replication. 通过复制,使数据库在不同地理位置之间高度可用
  • Learn More: Database Replication (https://www.geeksforgeeks.org/data-replication-in-dbms/)

Definition: A process of copying and maintaining database objects in a multitude of databases which make up a distributed database system. 在多个数据库中复制和维护数据库对象的过程,这些数据库组成一个分布式数据库系统。

DefinitionExample: It involves allowing a database to be highly available across different geographical locations using replication. 通过复制,使数据库在不同地理位置之间高度可用

ExampleLearn More: Database Replication (https://www.geeksforgeeks.org/data-replication-in-dbms/)

Learn More# 18. Failover - 故障转移

  • Definition: A backup operational mode in which system component functions are taken over by other system components in case of loss of a primary system component. 一种备份操作模式,当主系统组件丧失功能时,由其他系统组件接管其功能
  • Example: Built-in automatic failovers to standby servers in the event of a server failure of your internet applications. 为互联网应用程序建立自动故障转移,以在服务器故障时切换到备用服务器。
  • Learn More: Failover Vs Disaster Recovery(https://macquariecloudservices.com/blog/failover-vs-disaster-recovery/)

Definition: A backup operational mode in which system component functions are taken over by other system components in case of loss of a primary system component. 一种备份操作模式,当主系统组件丧失功能时,由其他系统组件接管其功能

DefinitionExample: Built-in automatic failovers to standby servers in the event of a server failure of your internet applications. 为互联网应用程序建立自动故障转移,以在服务器故障时切换到备用服务器。

ExampleLearn More: Failover Vs Disaster Recovery(https://macquariecloudservices.com/blog/failover-vs-disaster-recovery/)

Learn More# 19. API Gateway - API 网关

  • Definition: A server that sits at the front of an API, receiving API requests, applying throttling and security policies, and then forwarding them to back-end services. 一个服务器,位于 API 的前端,接收 API 请求,应用节流和安全策略,然后将请求转发到后端服务。
  • Example: Using AWS API Gateway to manage APIs. 使用 AWS API 网关管理 API。
  • Learn More: What is an API Gateway?(https://www.f5.com/glossary/api-gateway)

Definition: A server that sits at the front of an API, receiving API requests, applying throttling and security policies, and then forwarding them to back-end services. 一个服务器,位于 API 的前端,接收 API 请求,应用节流和安全策略,然后将请求转发到后端服务。

DefinitionExample: Using AWS API Gateway to manage APIs. 使用 AWS API 网关管理 API。

ExampleLearn More: What is an API Gateway?(https://www.f5.com/glossary/api-gateway)

Learn More# 20. Service Mesh - 服务网格

  • Definition: A dedicated infrastructure layer for facilitating service-to-service communications between microservices. 一种专门的基础设施层,用于促进微服务之间的服务间通信
  • Example: Integrating Istio as a service mesh for the management of microservice interactions. 集成 Istio 作为服务网格,以管理微服务交互。
  • Learn More: Introduction to Service Mesh (https://aws.amazon.com/cn/what-is/service-mesh/#:~:text=A)

Definition: A dedicated infrastructure layer for facilitating service-to-service communications between microservices. 一种专门的基础设施层,用于促进微服务之间的服务间通信

DefinitionExample: Integrating Istio as a service mesh for the management of microservice interactions. 集成 Istio 作为服务网格,以管理微服务交互。

ExampleLearn More: Introduction to Service Mesh (https://aws.amazon.com/cn/what-is/service-mesh/#:~:text=A)

Learn More# 21. Serverless Computing - 无服务器计算

  • Definition: A Cloud computing implementation that “dynamically allows for the allotment of machine resources by the cloud provider”. 一种云计算实现,由云提供商动态分配机器资源
  • Example: Run backend code without any server provisioning at your end using AWS Lambda. 使用 AWS Lambda 运行后端代码,而无需任何服务器配置
  • Learn More: What is Serverless Computing? (https://www.cloudflare.com/zh-cn/learning/serverless/what-is-serverless/)

Definition: A Cloud computing implementation that “dynamically allows for the allotment of machine resources by the cloud provider”. 一种云计算实现,由云提供商动态分配机器资源

DefinitionExample: Run backend code without any server provisioning at your end using AWS Lambda. 使用 AWS Lambda 运行后端代码,而无需任何服务器配置

ExampleLearn More: What is Serverless Computing? (https://www.cloudflare.com/zh-cn/learning/serverless/what-is-serverless/)

Learn More# 22. Event-Driven Architecture - 事件驱动架构

  • Definition: A software architecture paradigm encouraging the generation, detection, and consumption of, and the reaction to, events in general. 一种软件架构范式,鼓励事件的生成、检测和消费,以及对事件的反应
  • Example: Design a system with event communications between microservices using Apache Kafka. 使用 Apache Kafka 在微服务之间设计事件通信系统
  • Learn More: Event-Driven Architecture (https://aws.amazon.com/cn/event-driven-architecture/)

Definition: A software architecture paradigm encouraging the generation, detection, and consumption of, and the reaction to, events in general. 一种软件架构范式,鼓励事件的生成、检测和消费,以及对事件的反应

DefinitionExample: Design a system with event communications between microservices using Apache Kafka. 使用 Apache Kafka 在微服务之间设计事件通信系统

ExampleLearn More: Event-Driven Architecture (https://aws.amazon.com/cn/event-driven-architecture/)

Learn More# 23. Monolithic Architecture - 单体架构

  • Definition: A software architecture wherein all the elements are fitted into a single application and run as a single service. 一种软件架构,所有元素都集成在一个应用程序中并作为一个服务运行。
  • Example: Old traditional enterprise applications built as a single, large unit. 传统的企业应用程序通常构建为单一的大型单元。
  • Learn More: Monolithic vs Microservices Architecture (https://www.atlassian.com/microservices/microservices-architecture/microservices-vs-monolith)

Definition: A software architecture wherein all the elements are fitted into a single application and run as a single service. 一种软件架构,所有元素都集成在一个应用程序中并作为一个服务运行。

DefinitionExample: Old traditional enterprise applications built as a single, large unit. 传统的企业应用程序通常构建为单一的大型单元。

ExampleLearn More: Monolithic vs Microservices Architecture (https://www.atlassian.com/microservices/microservices-architecture/microservices-vs-monolith)

Learn More# 24. Distributed Systems - 分布式系统

  • Definition: A model wherein components located on networked computers communicate with each other and coordinate their actions by passing messages. 一种模型,位于网络计算机上的组件通过消息传递通信
  • Example: Designing a distributed file system like Hadoop. 谷歌文件系统(GFS)是一个分布式文件系统的示例。
  • Learn More: Introduction to Distributed Systems (https://www.geeksforgeeks.org/what-is-a-distributed-system/)

Definition: A model wherein components located on networked computers communicate with each other and coordinate their actions by passing messages. 一种模型,位于网络计算机上的组件通过消息传递通信

DefinitionExample: Designing a distributed file system like Hadoop. 谷歌文件系统(GFS)是一个分布式文件系统的示例。

ExampleLearn More: Introduction to Distributed Systems (https://www.geeksforgeeks.org/what-is-a-distributed-system/)

Learn More# 25. Message Queue - 消息队列

Definition: This method allows asynchronous, service-to-service communication in both serverless and microservices architectures.

DefinitionExample: Using RabbitMQ to queue messages between services.

ExampleLearn More: Message Queues Explained (https://aws.amazon.com/cn/message-queue/#:~:text=Message%20queues%20allow%20different%20parts,to%20send%20and%20receive%20messages.)

Learn More# 26. Pub/Sub Model - Pub/Sub 模型

  • Definition: A messaging pattern in which senders (publishers) publish messages so abstractly that any one of them can end up being accessed by recipients without the sender having to even know the identity of the destination receivers (subscribers). 消息模型,抽象隔离消息发送者和订阅者,
  • Example: A notification system that uses Google Cloud Pub/Sub. 使用 Google 云 Pub/Sub 的通知系统
  • Learn More: Pub/Sub Messaging(https://aws.amazon.com/cn/what-is/pub-sub-messaging/)

Definition: A messaging pattern in which senders (publishers) publish messages so abstractly that any one of them can end up being accessed by recipients without the sender having to even know the identity of the destination receivers (subscribers). 消息模型,抽象隔离消息发送者和订阅者,

**Definition:**Example: A notification system that uses Google Cloud Pub/Sub. 使用 Google 云 Pub/Sub 的通知系统

**Example:**Learn More: Pub/Sub Messaging(https://aws.amazon.com/cn/what-is/pub-sub-messaging/)

Learn More# 27. Data Partitioning - 数据分区

Definition: Division of a database into smaller, manageable parts.

DefinitionExample: Partitioning a table in a database by date to allow super-fast query execution.

ExampleLearn More: Database Partitioning(https://www.cockroachlabs.com/blog/what-is-data-partitioning-and-how-to-do-it-right/)

Learn More# 28. Horizontal Scaling - 水平扩展

Definition: Increasing the capacity by adding more machines or nodes within a system. 通过增加机器节点来扩展系统容量

DefinitionExample: Adding more web servers to handle an increasing volume of user traffic. 增加 web 服务器来处理和增加用户请求量

ExampleLearn More: Horizontal vs Vertical Scaling(https://www.digitalocean.com/resources/articles/horizontal-scaling-vs-vertical-scaling)

Learn More# 29. Vertical Scaling - 垂直扩展

Definition: Upgrading an already existing machine with more power in the form of a CPU or RAM. 对已存在的机器升级 CPU 和内存配置

DefinitionExample: Upgrading the RAM of a server so that it can handle more requests all at once. 升级服务器内存以便处理更多请求

ExampleLearn More: Horizontal vs Vertical Scaling(https://www.digitalocean.com/resources/articles/horizontal-scaling-vs-vertical-scaling)

Learn More# 30. Rate Limiting - 限流

  • Definition: It means controlling the rate of traffic that the network interface controller is sending or receiving. 控制网络接口发送或则接收请求的速率
  • Example: Throttling an API to prevent abusive behaviour. 对 API 限流阻止过度使用的行为
  • Learn More: Understanding Rate Limiting(https://www.solo.io/topics/rate-limiting/)

Definition: It means controlling the rate of traffic that the network interface controller is sending or receiving. 控制网络接口发送或则接收请求的速率

DefinitionExample: Throttling an API to prevent abusive behaviour. 对 API 限流阻止过度使用的行为

ExampleLearn More: Understanding Rate Limiting(https://www.solo.io/topics/rate-limiting/)

Learn More# 31. Circuit Breaker Pattern - 熔断器模式

  • Definition: A design pattern used in modern software development, applied to detect failures and encapsulate the logic of preventing a failure from constantly recurring. 现代软件开发的一种设计模式,通过检测失败增加熔断逻辑避免频繁失败
  • Example: Handling failed remote service calls using a circuit breaker in a microservice architecture. 微服务架构中使用熔断器来处理失败的远程服务调用
  • Learn More: Circuit Breaker Pattern(https://www.geeksforgeeks.org/what-is-circuit-breaker-pattern-in-microservices/)

Definition: A design pattern used in modern software development, applied to detect failures and encapsulate the logic of preventing a failure from constantly recurring. 现代软件开发的一种设计模式,通过检测失败增加熔断逻辑避免频繁失败

DefinitionExample: Handling failed remote service calls using a circuit breaker in a microservice architecture. 微服务架构中使用熔断器来处理失败的远程服务调用

ExampleLearn More: Circuit Breaker Pattern(https://www.geeksforgeeks.org/what-is-circuit-breaker-pattern-in-microservices/)

Learn More# 32. Data Consistency - 数据一致性

  • Definition: Ensuring that data is the same across multiple instances and is not corrupted. 确保数据在多个实例之间保持一致,且不会被损坏
  • Example: Maintaining the consistency of user data through multiple replicas of a database. 通过数据库的多个副本保持用户数据的一致性
  • Learn More: Data Consistency Models(https://www.geeksforgeeks.org/consistency-model-in-distributed-system/)

Definition: Ensuring that data is the same across multiple instances and is not corrupted. 确保数据在多个实例之间保持一致,且不会被损坏

DefinitionExample: Maintaining the consistency of user data through multiple replicas of a database. 通过数据库的多个副本保持用户数据的一致性

ExampleLearn More: Data Consistency Models(https://www.geeksforgeeks.org/consistency-model-in-distributed-system/)

Learn More# 33. Eventual Consistency - 最终一致性

  • Definition: A model of consistency used in distributed computing toward the goal of high availability, stating that updates to a system will eventually propagate and be reflected by all nodes. 一种用于分布式计算的模型,旨在实现高可用性,表明系统中的更新最终会传播并在所有节点上反映出来。
  • Example: Amazon DynamoDB provides an eventually consistent model for the read operation. Amazon DynamoDB 为读操作提供了最终一致性模型。
  • Learn More: Eventual Consistency(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)

Definition: A model of consistency used in distributed computing toward the goal of high availability, stating that updates to a system will eventually propagate and be reflected by all nodes. 一种用于分布式计算的模型,旨在实现高可用性,表明系统中的更新最终会传播并在所有节点上反映出来。

DefinitionExample: Amazon DynamoDB provides an eventually consistent model for the read operation. Amazon DynamoDB 为读操作提供了最终一致性模型。

ExampleLearn More: Eventual Consistency(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)

Learn More# 34. Strong Consistency - 强一致性

Definition: A consistency model ensuring every read gets the most recent write on a given unit of data. 一种一致性模型,确保每次读取都能获得给定数据单元上的最新写入。

DefinitionExample: Using strong consistency in a financial transaction system. 在金融交易系统中使用强一致性。

ExampleLearn More: Strong Consistency(https://www.geeksforgeeks.org/eventual-vs-strong-consistency-in-distributed-databases/)

Learn More# 35. Containerization - 容器化

  • Definition: Basically, this is whenever an application and its dependencies are encapsulated into a container to be run on any computational environment. 将应用程序及其依赖项封装到一个容器中,以便在任何计算环境中运行。
  • Example: Using Docker to containerize the applications for deployment in various environments such as dev, test, prod etc. 使用Docker将应用程序容器化,以便在开发、测试、生产等各种环境中部署。
  • Learn More: What is Containerization?(https://aws.amazon.com/cn/what-is/containerization/)

Definition: Basically, this is whenever an application and its dependencies are encapsulated into a container to be run on any computational environment. 将应用程序及其依赖项封装到一个容器中,以便在任何计算环境中运行。

DefinitionExample: Using Docker to containerize the applications for deployment in various environments such as dev, test, prod etc. 使用Docker将应用程序容器化,以便在开发、测试、生产等各种环境中部署。

ExampleLearn More: What is Containerization?(https://aws.amazon.com/cn/what-is/containerization/)

Learn More# 36. Kubernetes

  • Definition: An open-source platform that automates the process of application container deployment, scaling, and operation. 一个开源平台,用于自动化应用程序容器的部署、扩展和操作
  • Example: Run and deploy containerized applications using Kubernetes. 使用Kubernetes运行和部署容器化应用程序。
  • Learn More: Kubernetes Documentation(https://kubernetes.io/docs/home/)

Definition: An open-source platform that automates the process of application container deployment, scaling, and operation. 一个开源平台,用于自动化应用程序容器的部署、扩展和操作

**Definition:**Example: Run and deploy containerized applications using Kubernetes. 使用Kubernetes运行和部署容器化应用程序。

**Example:**Learn More: Kubernetes Documentation(https://kubernetes.io/docs/home/)

Learn More# 37. Autoscaling - 自动扩展

  • Definition: Automatically adjusting the number of computational resources based on the user load. 根据用户负载自动调整计算资源的数量
  • Example: Utilizing AWS EC2 Auto Scaling feature to dynamically adjust the number of instances. 利用AWS EC2自动扩展功能动态调整实例数量。
  • Learn More: Auto Scaling explained(https://aws.amazon.com/cn/autoscaling/)

Definition: Automatically adjusting the number of computational resources based on the user load. 根据用户负载自动调整计算资源的数量

DefinitionExample: Utilizing AWS EC2 Auto Scaling feature to dynamically adjust the number of instances. 利用AWS EC2自动扩展功能动态调整实例数量。

ExampleLearn More: Auto Scaling explained(https://aws.amazon.com/cn/autoscaling/)

Learn More# 38. Multi-Tenancy - 多租户

  • Definition: Architecture where a single instance of a software application serves multiple consumers/customers. 一种架构,单个软件应用程序实例为多个消费者/客户提供服务
  • Example: SaaS applications, such as Salesforce, utilize multi-tenancy in their service provision toward their different categories of customers. SaaS应用程序(如Salesforce)在其服务提供中使用多租户架构,为不同类别的客户提供
  • Learn More: Single Tenancy Vs Multi-Tenancy?(https://www.digitalguardian.com/blog/saas-single-tenant-vs-multi-tenant-whats-difference)

Definition: Architecture where a single instance of a software application serves multiple consumers/customers. 一种架构,单个软件应用程序实例为多个消费者/客户提供服务

**Definition:**Example: SaaS applications, such as Salesforce, utilize multi-tenancy in their service provision toward their different categories of customers. SaaS应用程序(如Salesforce)在其服务提供中使用多租户架构,为不同类别的客户提供

**Example:**Learn More: Single Tenancy Vs Multi-Tenancy?(https://www.digitalguardian.com/blog/saas-single-tenant-vs-multi-tenant-whats-difference)

Learn More:# 39. Load Shedding

  • Definition: Backing off some demands or degrading services to maintain the health of the overall system under high load. 为了在高负载下保持整体系统的健康,减少某些需求或降低服务质量。
  • Example: This will turn off all non-essential services during times of peak traffic. 在高峰流量时关闭所有非必要的服务
  • Learn More: Load Shedding(https://www.techtarget.com/searchdatacenter/definition/load-shedding)

Definition: Backing off some demands or degrading services to maintain the health of the overall system under high load. 为了在高负载下保持整体系统的健康,减少某些需求或降低服务质量。

DefinitionExample: This will turn off all non-essential services during times of peak traffic. 在高峰流量时关闭所有非必要的服务

ExampleLearn More: Load Shedding(https://www.techtarget.com/searchdatacenter/definition/load-shedding)

Learn More# 40. Idempotence

  • Definition: A property for some mathematical and computer-science operations stating that it has the same effect if repeated more times than once. 一些数学和计算机科学操作的性质,重复执行多次具有相同的效果。
  • Example: An HTTP DELETE request is idempotent. HTTP DELETE请求是幂等的。
  • Learn More: Idempotence in APIs(https://restfulapi.net/idempotent-rest-apis/)

Definition: A property for some mathematical and computer-science operations stating that it has the same effect if repeated more times than once. 一些数学和计算机科学操作的性质,重复执行多次具有相同的效果。

DefinitionExample: An HTTP DELETE request is idempotent. HTTP DELETE请求是幂等的。

ExampleLearn More: Idempotence in APIs(https://restfulapi.net/idempotent-rest-apis/)

Learn More# 41. Quorum

  • Definition: The minimum number of votes needed to commit a distributed transaction. 提交分布式事务所需的最小投票数。
  • Example: Basically, quorum-based replication ensures that consistency exists in the distributed database. 基本上,基于仲裁的复制确保了分布式数据库中的一致性。
  • Learn More: Quorum Systems(https://en.wikipedia.org/wiki/Quorum_(distributed_computing))

Definition: The minimum number of votes needed to commit a distributed transaction. 提交分布式事务所需的最小投票数。

DefinitionExample: Basically, quorum-based replication ensures that consistency exists in the distributed database. 基本上,基于仲裁的复制确保了分布式数据库中的一致性。

ExampleLearn More: Quorum Systems(https://en.wikipedia.org/wiki/Quorum_(distributed_computing))

Learn More# 42. Orchestration - 编排

  • Definition: A pattern of service interaction where a central coordinator controls the interaction between services. 一种服务交互模式,其中中央协调器控制服务之间的交互。
  • Example: Using a workflow engine to manage some multi-step business process. 使用工作流引擎管理某些多步骤的业务流程。
  • Learn More: Orchestration(https://www.redhat.com/en/topics/automation/what-is-orchestration)

Definition: A pattern of service interaction where a central coordinator controls the interaction between services. 一种服务交互模式,其中中央协调器控制服务之间的交互。

DefinitionExample: Using a workflow engine to manage some multi-step business process. 使用工作流引擎管理某些多步骤的业务流程。

ExampleLearn More: Orchestration(https://www.redhat.com/en/topics/automation/what-is-orchestration)

Learn More# 43. Choreography

Definition: A service interaction pattern in which every service is self-contained and interacts with others through events; there will not be any coordinator or orchestrator. 一种服务交互模式,每个服务都是自包含的,并通过事件与其他服务交互;不会有任何协调器或编排器

DefinitionExample: Microservices communicating through an event bus in a choreography pattern. 微服务通过事件总线在协作模式中进行通信。

ExampleLearn More: Choreography vs. Orchestration(https://www.wallarm.com/what/orchestration-vs-choreography#:~:text=With%20orchestration%2C%20the%20control%20logic,its%20part%20of%20the%20workflow.)

Learn More# 44. Service Registry

Definition: A database that keeps track of instances of microservices. 一个跟踪微服务实例的数据库。

DefinitionExample: Using the Eureka service registry in a microservice architecture. 在微服务架构中使用Eureka服务注册表。

ExampleLearn More: Service Registry and Discovery(https://docs.spring.io/spring-cloud-netflix/docs/current/reference/html/#spring-cloud-eureka-server)

Learn More# 45. API Rate Limiting

Definition: It means controlling how many requests a client can make against an API within a certain timeframe. 控制客户端在一定时间内对API的请求数量

DefinitionExample: Limiting requests to an API to 100 per minute to prevent abuse. 将API请求限制为每分钟100次,以防止滥用。

ExampleLearn More: API Rate Limiting(https://datadome.co/bot-management-protection/what-is-api-rate-limiting/#:~:text=API%20rate%20limiting%20is%2C%20in,API%20product's%20growth%20and%20scalability.)

Learn More# 46. Data Warehouse

  • Definition: A system that helps in the generation of reports and business data analytics; the hub of Business Intelligence. 一个用于生成报告和业务数据分析的系统,是商业智能的枢纽。
  • Example: Amazon Redshift can be implemented in data warehousing. Amazon Redshift可以在数据仓库中实现
  • Learn More: Understanding Data Warehouse?(https://aws.amazon.com/cn/what-is/data-warehouse/)

Definition: A system that helps in the generation of reports and business data analytics; the hub of Business Intelligence. 一个用于生成报告和业务数据分析的系统,是商业智能的枢纽。

**Definition:**Example: Amazon Redshift can be implemented in data warehousing. Amazon Redshift可以在数据仓库中实现

**Example:**Learn More: Understanding Data Warehouse?(https://aws.amazon.com/cn/what-is/data-warehouse/)

Learn More# 47. Data Lake

  • Definition: A system or repository where data is kept in native/raw format, generally as object blobs or files. 一种系统或存储库,其中数据以原始/本机格式存储,通常为对象块或文件。
  • Example: Petabyte scaling for storing and managing structured and unstructured data in a data lake. 在数据湖中存储和管理结构化和非结构化数据,支持PB级扩展
  • Learn More: Data Lake(https://azure.microsoft.com/en-us/solutions/data-lake/)

Definition: A system or repository where data is kept in native/raw format, generally as object blobs or files. 一种系统或存储库,其中数据以原始/本机格式存储,通常为对象块或文件。

**Definition:**Example: Petabyte scaling for storing and managing structured and unstructured data in a data lake. 在数据湖中存储和管理结构化和非结构化数据,支持PB级扩展

**Example:**Learn More: Data Lake(https://azure.microsoft.com/en-us/solutions/data-lake/)

Learn More# 48. OLAP

Definition: Online Analytical Processing : The software category that allows the analysis of data kept in a database. 允许分析存储在数据库中的数据的软件类别。

**Definition:**Example: Use of the OLAP cubes for pointy analytical and arbitrary queries. 使用OLAP多维数据集进行尖端分析和任意查询。

**Example:**Learn More: OLAP Explained(https://aws.amazon.com/cn/what-is/olap/#:~:text=Online%20analytical%20processing%20(OLAP)%20is,smart%20meters%2C%20and%20internal%20systems.)

Learn More# 49. OLTP

  • Definition: Online Transaction Processing: a class of systems that manage transaction-oriented applications. 一种管理事务导向型应用程序的系统类别。
  • Example: Using OLTP systems for transaction data management, as in banking systems etc. 在银行系统等中使用OLTP系统进行交易数据管理。
  • Learn More: OLTP Explained

Definition: Online Transaction Processing: a class of systems that manage transaction-oriented applications. 一种管理事务导向型应用程序的系统类别。

DefinitionExample: Using OLTP systems for transaction data management, as in banking systems etc. 在银行系统等中使用OLTP系统进行交易数据管理。

ExampleLearn More: OLTP Explained

Learn More# 50. Big Data

  • Definition: Large, complex data sets that cannot be efficiently managed by conventional data-processing software in the best of cases. 无法通过传统数据处理软件高效管理的大型、复杂数据集。
  • Example: Analyzing social media interactions to predict fashion trends. 分析社交媒体互动以预测时尚趋势。
  • Learn More: Introduction to Big Data(https://www.geeksforgeeks.org/what-is-big-data/)

Definition: Large, complex data sets that cannot be efficiently managed by conventional data-processing software in the best of cases. 无法通过传统数据处理软件高效管理的大型、复杂数据集。

DefinitionExample: Analyzing social media interactions to predict fashion trends. 分析社交媒体互动以预测时尚趋势。

ExampleLearn More: Introduction to Big Data(https://www.geeksforgeeks.org/what-is-big-data/)

Learn MoreKeep in mind that it’s all about continuous learning and practice as you go further in system design. You can work with the resources, get involved in the discussions, and practice these concepts in your projects. The resources and discussions will expose you to the vocabulary and usages of the concept.

Thanks for reading! Please share this guide with others if you, in any way, found it useful so they can also do these sets of exercises. If you have thoughts, questions, and/or resources, head down to our comments section.

Happy System Designing!

**Happy System Designing!***后记

后记1. medium 文章收费问题解决方式请参考:medium.com会员文章阅读
2. 大龄程序员求职交流请关注公众号或留言。

medium 文章收费问题解决方式请参考:medium.com会员文章阅读

medium 文章收费问题解决方式请参考:medium.com会员文章阅读medium.com会员文章阅读大龄程序员求职交流请关注公众号或留言。