构建高性能可扩展系统的16个关键概念


对计算机系统来说:模块化是复杂的解药、简单化是可靠的基石。


掌握如下概念可以帮助系统架构师更好地规划复杂情形和实施优良的架构设计,提高系统的性能和可扩展性。

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

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

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

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

3.负载均衡器(LB,Load Balancer)

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

4.代理服务(Proxy Server)

正向代理充当客户端与互联网之间的中间人。当客户端请求互联网上的资源时,请求首先发送到正向代理。正向代理会代表客户端将请求转发到互联网,并将响应返回给客户端。

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

5.API网关(API Gateway)

API网关是一个服务器或服务,充当外部客户端与应用程序内部微服务或基于API的后端服务之间的中间人,提供了统一的入口点,并提供身份验证、授权、流量控制、请求转换等能力。

6.微服务(Microservices)

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

7.缓存(Caching)

缓存是位于应用程序和数据的原始来源(如数据库、文件系统或远程Web服务)之间的高速存储层。当应用程序请求数据时,首先在缓存中进行检查。如果缓存中存在数据,则将其返回给应用程序。如果缓存中不存在数据,则从原始来源检索数据,将其存储在缓存中供将来使用。

8.消息队列(MQ,Message Queue)

消息队列服务能够在可靠、可扩展和容错的方式下,在多个潜在地理分布的应用程序、服务或组件之间进行消息交换,通过解耦来提高系统的灵活性和可扩展性。

9.数据库索引(Database Index)

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

10.数据分区(Data Partitioning)

在数据库中,水平分区,也称为分片(sharding),涉及将表的行分成较小的表,并将它们存储在不同的服务器或数据库实例上。这样做是为了将数据库的负载分布到多个服务器上,以提高性能。另一方面,垂直分区涉及将表的列分成单独的表。这样做是为了减少表中的列数,并提高仅访问少数列的查询的性能。

11.数据库复制(Database Replication)

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

12.全文搜索(Full-text Search)

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

13.NoSQL数据库(NoSQL Databases)

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

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

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

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

分布式协调服务是一种设计用于可靠、高效和容错地管理和协调分布式应用程序、服务或节点活动的系统。它们有助于维护一致性、处理分布式同步,并管理分布式环境中各种组件的配置和状态。

16.通知系统(Notification System)

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


这些内容并不是我真正原创的,但我努力用自己的话来说,是为了帮助我自己记住这些智慧。它们就像一个压缩文件,你可以拓展阅读、从而发现更多的宝藏。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。