對計(jì)算機(jī)系統(tǒng)來說:模塊化是復(fù)雜的解藥、簡單化是可靠的基石。
掌握如下概念可以幫助系統(tǒng)架構(gòu)師更好地規(guī)劃復(fù)雜情形和實(shí)施優(yōu)良的架構(gòu)設(shè)計(jì),提高系統(tǒng)的性能和可擴(kuò)展性。

1.域名系統(tǒng) (DNS,Domain Name System)
域名系統(tǒng)(DNS)是互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)的核心組成部分,將人類友好的域名轉(zhuǎn)換為相應(yīng)的IP地址。它的功能類似于互聯(lián)網(wǎng)的電話簿,允許用戶通過鍵入易于記憶的域名(如www.itdecent.cn)而不是計(jì)算機(jī)用于相互識別的數(shù)字IP地址(如“192.0.2.1”)來訪問網(wǎng)站和服務(wù)。
2.內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN,Content Delivery Network)
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)是由分布在全球各地的服務(wù)器組成的網(wǎng)絡(luò),用于存儲和傳遞內(nèi)容,如圖片、視頻、樣式表和腳本,以從地理上更接近用戶的位置提供服務(wù)。CDN旨在改善內(nèi)容傳遞到最終用戶的性能、速度和可靠性。
3.負(fù)載均衡器(LB,Load Balancer)
負(fù)載均衡器是一種網(wǎng)絡(luò)設(shè)備或軟件,用于將傳入的網(wǎng)絡(luò)流量分配到多個服務(wù)器,以確保資源的最佳利用、降低延遲并保持高可用性。它在擴(kuò)展應(yīng)用程序和有效管理服務(wù)器工作負(fù)載方面發(fā)揮著至關(guān)重要的作用,特別是在流量突增或請求在服務(wù)器之間分布不均的情況下。
4.代理服務(wù)(Proxy Server)
正向代理充當(dāng)客戶端與互聯(lián)網(wǎng)之間的中間人。當(dāng)客戶端請求互聯(lián)網(wǎng)上的資源時,請求首先發(fā)送到正向代理。正向代理會代表客戶端將請求轉(zhuǎn)發(fā)到互聯(lián)網(wǎng),并將響應(yīng)返回給客戶端。
反向代理充當(dāng)Web服務(wù)器與互聯(lián)網(wǎng)之間的中間人。當(dāng)客戶端請求互聯(lián)網(wǎng)上的資源時,請求首先發(fā)送到反向代理,反向代理將請求轉(zhuǎn)發(fā)給其中一個Web服務(wù)器,最后將響應(yīng)返回給客戶端。
5.API網(wǎng)關(guān)(API Gateway)
API網(wǎng)關(guān)是一個服務(wù)器或服務(wù),充當(dāng)外部客戶端與應(yīng)用程序內(nèi)部微服務(wù)或基于API的后端服務(wù)之間的中間人,提供了統(tǒng)一的入口點(diǎn),并提供身份驗(yàn)證、授權(quán)、流量控制、請求轉(zhuǎn)換等能力。
6.微服務(wù)(Microservices)
微服務(wù)是一種架構(gòu)風(fēng)格,將應(yīng)用程序結(jié)構(gòu)化為一組小型、松耦合和獨(dú)立可部署的服務(wù)。每個微服務(wù)負(fù)責(zé)應(yīng)用程序中特定的功能或領(lǐng)域,并通過明確定義的API與其他微服務(wù)進(jìn)行通信。
7.緩存(Caching)
緩存是位于應(yīng)用程序和數(shù)據(jù)的原始來源(如數(shù)據(jù)庫、文件系統(tǒng)或遠(yuǎn)程Web服務(wù))之間的高速存儲層。當(dāng)應(yīng)用程序請求數(shù)據(jù)時,首先在緩存中進(jìn)行檢查。如果緩存中存在數(shù)據(jù),則將其返回給應(yīng)用程序。如果緩存中不存在數(shù)據(jù),則從原始來源檢索數(shù)據(jù),將其存儲在緩存中供將來使用。
8.消息隊(duì)列(MQ,Message Queue)
消息隊(duì)列服務(wù)能夠在可靠、可擴(kuò)展和容錯的方式下,在多個潛在地理分布的應(yīng)用程序、服務(wù)或組件之間進(jìn)行消息交換,通過解耦來提高系統(tǒng)的靈活性和可擴(kuò)展性。
9.數(shù)據(jù)庫索引(Database Index)
數(shù)據(jù)庫索引是一種提高數(shù)據(jù)庫查詢操作速度和效率的數(shù)據(jù)結(jié)構(gòu)。工作方式類似于圖書索引,允許數(shù)據(jù)庫管理系統(tǒng)(DBMS)快速定位與特定值或值集相關(guān)聯(lián)的數(shù)據(jù),而無需搜索表中的每一行。通過索引可以顯著減少從數(shù)據(jù)庫檢索信息所需的時間。
10.數(shù)據(jù)分區(qū)(Data Partitioning)
在數(shù)據(jù)庫中,水平分區(qū),也稱為分片(sharding),涉及將表的行分成較小的表,并將它們存儲在不同的服務(wù)器或數(shù)據(jù)庫實(shí)例上。這樣做是為了將數(shù)據(jù)庫的負(fù)載分布到多個服務(wù)器上,以提高性能。另一方面,垂直分區(qū)涉及將表的列分成單獨(dú)的表。這樣做是為了減少表中的列數(shù),并提高僅訪問少數(shù)列的查詢的性能。
11.數(shù)據(jù)庫復(fù)制(Database Replication)
數(shù)據(jù)庫用于在不同的服務(wù)器或位置上維護(hù)同一數(shù)據(jù)庫的多個副本。數(shù)據(jù)庫復(fù)制的主要目的是提高數(shù)據(jù)的性能、可用性、冗余性和容錯性,確保系統(tǒng)在硬件故障或其他問題的情況下繼續(xù)運(yùn)行。
12.全文搜索(Full-text Search)
全文搜索使用戶能夠在應(yīng)用程序或網(wǎng)站中搜索特定的單詞或短語。當(dāng)用戶查詢時,應(yīng)用程序或網(wǎng)站返回最相關(guān)的結(jié)果。為了快速高效地完成這一操作,全文搜索依賴于倒排索引,它是一種將單詞或短語映射到出現(xiàn)它們的文檔的數(shù)據(jù)結(jié)構(gòu)。
13.NoSQL數(shù)據(jù)庫(NoSQL Databases)
NoSQL數(shù)據(jù)庫(非關(guān)系型數(shù)據(jù)庫)是設(shè)計(jì)用于存儲、管理和檢索非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫。它們提供了傳統(tǒng)關(guān)系型數(shù)據(jù)庫的替代方案,傳統(tǒng)關(guān)系型數(shù)據(jù)庫依賴結(jié)構(gòu)化數(shù)據(jù)和預(yù)定義模式。NoSQL數(shù)據(jù)庫因其靈活性、可擴(kuò)展性和處理大量數(shù)據(jù)的能力而受到歡迎,特別適用于現(xiàn)代應(yīng)用、大數(shù)據(jù)處理和實(shí)時分析。
14.分布式文件系統(tǒng)(Distributed File Systems)
分布式文件系統(tǒng)是設(shè)計(jì)用于管理和提供對文件和目錄的訪問的存儲解決方案,通??缍嗯_服務(wù)器、節(jié)點(diǎn)或機(jī)器進(jìn)行分布,常常分布在一個網(wǎng)絡(luò)上。它們使用戶和應(yīng)用程序能夠像在本地文件系統(tǒng)上存儲文件一樣訪問和操作文件,即使實(shí)際文件可能物理上存儲在多個遠(yuǎn)程服務(wù)器上。分布式文件系統(tǒng)通常用于大規(guī)模或分布式計(jì)算環(huán)境中,以提供容錯性、高可用性和改進(jìn)的性能。
15.分布式協(xié)調(diào)服務(wù)(Distributed Coordination Services)
分布式協(xié)調(diào)服務(wù)是一種設(shè)計(jì)用于可靠、高效和容錯地管理和協(xié)調(diào)分布式應(yīng)用程序、服務(wù)或節(jié)點(diǎn)活動的系統(tǒng)。它們有助于維護(hù)一致性、處理分布式同步,并管理分布式環(huán)境中各種組件的配置和狀態(tài)。
16.通知系統(tǒng)(Notification System)
通知系統(tǒng)用于向用戶發(fā)送通知或提醒,例如電子郵件、推送通知或短信。
這些內(nèi)容并不是我真正原創(chuàng)的,但我努力用自己的話來說,是為了幫助我自己記住這些智慧。它們就像一個壓縮文件,你可以拓展閱讀、從而發(fā)現(xiàn)更多的寶藏。