文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

16个系统设计中的核心概念

2024-11-30 06:01

关注

本文介绍16个基本的系统设计概念。

1 域名系统(DNS,Domain Name System )

域名系统(DNS)是互联网基础架构的核心组成部分,将人类友好的域名转换为相应的IP地址。它的功能类似于互联网的电话簿,允许用户通过键入易于记忆的域名(如www.designgurus.io)而不是计算机用于相互识别的数字IP地址(如“192.0.2.1”)来访问网站和服务。

当在网络浏览器中输入一个域名时,DNS负责查找相关的IP地址并将您的请求引导到正确的服务器。该过程始于您的计算机向递归解析器发送查询请求,然后递归解析器搜索一系列的DNS服务器,从根服务器开始,然后是顶级域(TLD)服务器,最后是权威名称服务器。一旦找到IP地址,递归解析器将其返回给您的计算机,使您的浏览器能够与目标服务器建立连接并访问所需的内容。

2 负载均衡器(Load Balancer)

负载均衡器是一种网络设备或软件,用于将传入的网络流量分配到多个服务器,以确保资源的最佳利用、降低延迟并保持高可用性。它在扩展应用程序和有效管理服务器工作负载方面发挥着至关重要的作用,特别是在流量突增或请求在服务器之间分布不均的情况下。

负载均衡器使用不同的算法来确定如何分配传入的流量。常见的算法包括:

图片

3 API 网关(API Gateway)

API 网关是一个服务器或服务,充当外部客户端与应用程序内部微服务或基于 API 的后端服务之间的中间人。它是现代架构中的关键组件,特别适用于基于微服务的系统,可以简化通信过程,并为客户端提供访问各种服务的单一入口点。

API 网关的主要功能包括:

图片

4 内容分发网络(CDN,Content Delivery Network)

内容分发网络(CDN)是由分布在全球各地的服务器组成的网络,用于存储和传递内容,如图片、视频、样式表和脚本,以从地理上更接近用户的位置提供服务。CDN旨在改善内容传递到最终用户的性能、速度和可靠性,无论用户与源服务器的位置关系如何。

CDN的工作原理如下:

图片

5 正向代理与反向代理(Forward Proxy vs. Reverse Proxy)

正向代理,也称为“代理服务器”或简称为“代理”,是位于一个或多个客户机前面的服务器,充当客户机与互联网之间的中间人。当客户机请求互联网上的资源时,请求首先发送到正向代理。正向代理会代表客户机将请求转发到互联网,并将响应返回给客户机。

反向代理是位于一个或多个Web服务器前面的服务器,充当Web服务器与互联网之间的中间人。当客户端请求互联网上的资源时,请求首先发送到反向代理。反向代理将请求转发给其中一个Web服务器,然后将响应返回给反向代理。反向代理再将响应返回给客户端。

图片

6 缓存(Caching)

缓存是位于应用程序和数据的原始来源(如数据库、文件系统或远程Web服务)之间的高速存储层。当应用程序请求数据时,首先在缓存中进行检查。如果缓存中存在数据,则将其返回给应用程序。如果缓存中不存在数据,则从原始来源检索数据,将其存储在缓存中供将来使用,并返回给应用程序。在分布式系统中,可以在多个位置进行缓存,例如客户端、DNS、CDN、负载均衡器、API网关、服务器、数据库等。

图片

7 数据分区(Data Partitioning)

在数据库中,水平分区,也称为分片(sharding),涉及将表的行分成较小的表,并将它们存储在不同的服务器或数据库实例上。这样做是为了将数据库的负载分布到多个服务器上,以提高性能。

另一方面,垂直分区涉及将表的列分成单独的表。这样做是为了减少表中的列数,并提高仅访问少数列的查询的性能。

图片

8 数据库复制(Database Replication)

数据库复制是一种技术,用于在不同的服务器或位置上维护同一数据库的多个副本。数据库复制的主要目的是提高数据的可用性、冗余性和容错性,确保系统在硬件故障或其他问题的情况下继续运行。

在复制数据库的设置中,一个服务器充当主数据库(或主库),而其他服务器则充当副本(或从库)。该过程涉及在主数据库和副本之间同步数据,以使它们都具有相同的最新信息。数据库复制提供了多个优点,包括:

9 分布式消息系统(Distributed Messaging Systems)

分布式消息系统能够在可靠、可扩展和容错的方式下,在多个潜在地理分布的应用程序、服务或组件之间进行消息交换。通过解耦发送者和接收者组件来促进通信,使它们能够独立演化和运行。分布式消息系统特别适用于大规模或复杂的系统,例如微服务架构或分布式计算环境中的系统。Apache Kafka和RabbitMQ是此类系统的示例。

10 微服务(Microservices)

微服务是一种架构风格,将应用程序结构化为一组小型、松耦合和独立可部署的服务。每个微服务负责应用程序中特定的功能或领域,并通过明确定义的API与其他微服务进行通信。这种方法与传统的单体架构不同,传统单体架构将应用程序构建为单个紧密耦合的单元。

微服务的主要特点包括:

11 NoSQL数据库(NoSQL Databases)

NoSQL数据库(非关系型数据库)是设计用于存储、管理和检索非结构化或半结构化数据的数据库。它们提供了传统关系型数据库的替代方案,传统关系型数据库依赖结构化数据和预定义模式。NoSQL数据库因其灵活性、可扩展性和处理大量数据的能力而受到欢迎,特别适用于现代应用、大数据处理和实时分析。

NoSQL数据库可以分为四种主要类型:

12 数据库索引(Database Index)

数据库索引是一种提高数据库查询操作速度和效率的数据结构。工作方式类似于书中的索引,允许数据库管理系统(DBMS)快速定位与特定值或值集相关联的数据,而无需搜索表中的每一行。通过提供更直接的路径以获取所需数据,索引可以显著减少从数据库检索信息所需的时间。

索引通常建立在一个或多个数据库表的列上。最常见的索引类型是B树索引,它以层次结构的树形结构组织数据,实现快速搜索、插入和删除操作。还有其他类型的索引,如位图索引和哈希索引,每种索引都有其特定的用例和优势。

虽然索引可以显著提高查询性能,但也存在一些权衡:

13 分布式文件系统(Distributed File Systems)

分布式文件系统是设计用于管理和提供对文件和目录的访问的存储解决方案,通常跨多台服务器、节点或机器进行分布,常常分布在一个网络上。它们使用户和应用程序能够像在本地文件系统上存储文件一样访问和操作文件,即使实际文件可能物理上存储在多个远程服务器上。分布式文件系统通常用于大规模或分布式计算环境中,以提供容错性、高可用性和改进的性能。

14 通知系统(Notification System)

通知系统用于向用户发送通知或提醒,例如电子邮件、推送通知或短信。

15 全文搜索(Full-text Search)

全文搜索使用户能够在应用程序或网站中搜索特定的单词或短语。当用户查询时,应用程序或网站返回最相关的结果。为了快速高效地完成这一操作,全文搜索依赖于倒排索引,它是一种将单词或短语映射到出现它们的文档的数据结构。Elastic Search就是这类系统的一个例子。

16 分布式协调服务(Distributed Coordination Services)

分布式协调服务是一种设计用于可靠、高效和容错地管理和协调分布式应用程序、服务或节点活动的系统。它们有助于维护一致性、处理分布式同步,并管理分布式环境中各种组件的配置和状态。分布式协调服务特别适用于大规模或复杂的系统,例如微服务架构、分布式计算环境或集群数据库。Apache ZooKeeper、etcd和Consul是此类服务的示例。

总结

通过使用上述系统设计概念和模板,能够最大化在系统设计面试中成功的机会。以下是一些常见的系统设计面试问题列表:

希望本文对读者的面试和工作有帮助。

来源:Java学研大本营内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯