速率限制是一種控制客戶端(像使用者、應用程式或系統)在特定時間內可以向伺服器發送請求數量的方式。把它想像成一個交通警察,確保沒有人過度使用或濫用伺服器的資源。
例如,伺服器可能允許單個客戶端每分鐘發送 100 個請求。如果客戶端超過這個限制,伺服器將拒絕額外的請求,通常會回傳 429(請求過多)響應。
速率限制的用途:
負載平衡是一種將來自用戶的請求或流量分配到多個伺服器的方式,以確保沒有單一伺服器被過載。把它想像成一個交通警察,引導車輛(請求)到不同的車道(伺服器),以保持一切運行順暢。
例如,像 Instagram 這樣的社交媒體平台有數百萬用戶同時訪問其伺服器。負載平衡器確保這些請求分散到幾個伺服器,而不是將所有用戶都導向同一台伺服器。
負載平衡的用途:
快取是一種臨時存儲經常訪問的數據的方式,這樣可以快速檢索,而不必一次又一次地從原始來源獲取。
把它想像成把常用食譜放在廚房檯面上。每次需要時,您不必總是翻閱食譜書,而是直接從檯面上取用,節省了時間和精力。
大多數後端系統會使用快取來儲存經常使用的數據庫查詢結果、API 回應或預先渲染的網頁。Redis 是後端開發者中流行的快取數據選擇。
快取的用途:
內容傳遞網路 (CDN) 是一組分散在不同地點的伺服器,這些伺服器共同協作將內容更快地傳遞給用戶。它有助於加速網站、圖片、影片和其他內容的加載過程,通過從距離用戶地理位置更近的伺服器提供服務。
想像一个图书馆,书籍存储在不同的分支。如果您不必每次都去中央图书馆取书,您可以去离您最近的分支,更快地获取书籍。CDN 做的事情类似,通过在多个位置存储网站内容的副本。
CDN的用途:
微服務是一種架構風格,將應用程式劃分為較小的、獨立的服務,每個服務負責一個特定的功能。每個微服務就像一個小積木,專注於一個任務並與其他服務通信,以創建完整的應用程式。
想像一家公司,每個部門(銷售、行銷、財務等)各自獨立工作,但又相互合作以運營業務。同樣,在微服務架構中,每個服務(例如用戶管理、支付處理等)各自運行,但互相互動以使整個系統正常運作。
微服務的對立面是單體架構,所有應用程式的功能都合併為一個單一的、統一的服務或代碼基礎。
微服務的用途:
API 閘道是作為所有客戶端請求進入系統的入口伺服器。它將這些請求路由到適當的微服務,處理負載平衡、身份驗證、快取和其他任務。簡而言之,它就像一位門衛,指導訪客到大型建築中的正確部門。
想像一個大型組織,擁有許多部門(微服務),而訪客(用戶)不必直接去每個部門,而是經過一個中央接待處(API 閘道),由它引導到正確的位置。
Kong 是一個流行的開源 API 閘道,被後端開發者廣泛使用。
API 閘道的用途:
網頁鉤子是一種讓一個應用程序在特定事件發生時,向另一個應用程序發送實時更新或通知的方式。與其讓接收應用程序不斷查詢更新(輪詢),發送應用程序會在需要時自動發送信息。
例如,當某些重要的事情發生時(例如包裹送達),發送者(快遞服務)會立即發送短信給您(接收者),而不是讓您不斷登錄網站查看更新。
網頁鉤子的用途:
分片是一種將大型數據庫拆分為更小、更易管理的部分的方法,稱為分片。每個分片保存了一部分數據,並作為獨立的數據庫運行。
把分片想像成圖書館的書籍根據類型劃分為多個區域。這樣一來,您只需在相關區域中搜尋書籍,而不必在整個圖書館中搜尋,從而使過程更快更高效。
分片的用途:
代理伺服器是一個作為客戶端(例如您的瀏覽器)和另一個伺服器(例如網站)之間的中介伺服器。您的請求不直接發送到伺服器,而是先經過代理,然後將其轉發到目標伺服器,再將回應發送回來給您。
把它想像成中介:如果要給某人發送消息,您可以將其給中介,由他為您送達並帶回回覆。
代理伺服器的用途:
消息隊列是一個系統,用於在應用程式的不同部分(或不同應用程式之間)可靠且有序地發送、存儲和檢索消息。與其直接發送消息,隊列像一個郵局:
RabbitMQ 和 Apache Kafka 是兩個流行的消息隊列系統。
消息隊列的用途:
感謝您閱讀我的文章!:pray: 希望您今天能學到一些東西。
請留下反應 🦄 或留言 💬,這樣這篇文章能夠傳達給其他像您一樣的開發者。🌱👨💻
👉 查看 Frontend Camp
https://frontendcamp.in 立即加入!🚀
或
https://dev.to/thesanjeevsharma/series/28387 查看 DEV 上的面試系列!
原文出處:https://dev.to/thesanjeevsharma/10-backend-terms-every-frontend-developer-should-know-2o2h