偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

六個(gè)系統(tǒng)設(shè)計(jì)的基本概念

系統(tǒng)
從擴(kuò)展策略和負(fù)載均衡技術(shù)到緩存和API設(shè)計(jì)的微妙之處,掌握這些領(lǐng)域可以讓你在競(jìng)爭(zhēng)中具備強(qiáng)大的優(yōu)勢(shì)。

一、簡(jiǎn)介

這份綜合指南將引導(dǎo)你掌握在系統(tǒng)設(shè)計(jì)中取得成功所需的基本概念。

二、垂直和水平擴(kuò)展

1. 垂直擴(kuò)展

系統(tǒng)擴(kuò)展的最直接方式是通過垂直擴(kuò)展。這涉及升級(jí)現(xiàn)有服務(wù)器,例如增加更多的RAM或更快的CPU。

1*8OAEF45gAfOxvrTUz6hp3w.png

垂直擴(kuò)展通常是處理用戶負(fù)載增加的快速解決方案。然而,從長(zhǎng)遠(yuǎn)來看,這并不是最有效的擴(kuò)展方式。

2. 水平擴(kuò)展

更高效的方法是水平擴(kuò)展。在這種情況下,會(huì)添加服務(wù)器的副本,使每個(gè)副本處理一部分請(qǐng)求。

1*LfHAtNeWaNARDcmIaGVkXw.png

這比垂直擴(kuò)展更為健壯,它帶來兩個(gè)關(guān)鍵的好處:

  • 無(wú)限擴(kuò)展性:你可以不斷添加服務(wù)器。
  • 可靠性:如果一個(gè)服務(wù)器失敗,其他服務(wù)器可以繼續(xù)處理請(qǐng)求,減輕單點(diǎn)故障問題。

3. 負(fù)載均衡

為了防止服務(wù)器超載并有效地分發(fā)流量,負(fù)載均衡至關(guān)重要。

1*UmNTQRCU97JYoLAIqYMAyA.png

負(fù)載均衡器將入站用戶請(qǐng)求分配到多個(gè)服務(wù)器上,防止任何一個(gè)服務(wù)器成為瓶頸。

(1) 算法

負(fù)載均衡器使用各種算法來分發(fā)流量:

  • 最少連接:將流量發(fā)送到具有最少打開連接的服務(wù)器。
  • 基于資源:根據(jù)可用資源選擇服務(wù)器。
  • IP哈希:根據(jù)源和目標(biāo)IP地址的哈希將流量分配給服務(wù)器。
  • 輪詢:按順序在服務(wù)器列表上分發(fā)流量。
  • 自定義腳本:你還可以編寫根據(jù)需要定制的自定義算法。

(2) 技術(shù)

負(fù)載均衡的常見方法包括:

  • 專業(yè)軟件:你可以使用像 Nginx 這樣的軟件,或者使用 AWS Elastic Load Balancing 等服務(wù)來實(shí)現(xiàn)負(fù)載均衡。
  • 基于DNS:通過為域分配多個(gè)IP,使用DNS本身作為簡(jiǎn)單的負(fù)載均衡器。然而,這種方法提供的定制性較少。

4.緩存

在系統(tǒng)中瓶頸通常不是Web服務(wù)器而是數(shù)據(jù)庫(kù)服務(wù)器。緩存涉及臨時(shí)存儲(chǔ)數(shù)據(jù),通常在計(jì)算機(jī)的RAM中,以便在減輕數(shù)據(jù)庫(kù)負(fù)載的同時(shí)更快地服務(wù)未來的請(qǐng)求。

(1) 技術(shù)

為了實(shí)施緩存,你需要根據(jù)特定要求從一系列可用的軟件選項(xiàng)中進(jìn)行選擇,例如 Redis、Nginx、Memcached 或 Cassandra。

(2) 緩存失效

為了保持緩存和數(shù)據(jù)庫(kù)同步,可以使用各種緩存失效策略。選擇正確的算法確保你的緩存既有效又高效。常見的算法有:

  • 寫穿透緩存: 先更新緩存,然后更新數(shù)據(jù)庫(kù)。
  • 寫回緩存: 先更新緩存,然后與數(shù)據(jù)庫(kù)同步。

(3) 但緩存在哪里?

緩存可以存在于應(yīng)用程序架構(gòu)的不同級(jí)別,包括:

  • 客戶端: 在瀏覽器的緩存中。
  • 服務(wù)器端: 使用像Redis或Memcached這樣的軟件。
  • 數(shù)據(jù)庫(kù): 通過在諸如MySQL的數(shù)據(jù)庫(kù)中進(jìn)行查詢緩存。

5. 內(nèi)容交付網(wǎng)絡(luò)(CDN)

通過內(nèi)容交付網(wǎng)絡(luò),可以實(shí)現(xiàn)另一層次的緩存。CDN是分布在多個(gè)地理位置的服務(wù)器網(wǎng)絡(luò),用于存儲(chǔ)和提供Web內(nèi)容,如圖像和視頻。它們?cè)诙鄠€(gè)地理位置存儲(chǔ)您內(nèi)容的緩存副本。

1*R5dl3WetVphgtjSjW1Kajg.png

CDN通常以以下幾種方式設(shè)置:

  • 拉取式: CDN在首次用戶請(qǐng)求時(shí)從源服務(wù)器獲取數(shù)據(jù)并緩存。
  • 推送式: 源服務(wù)器事先將數(shù)據(jù)推送到CDN。

知名的CDN提供商包括 Cloudflare、Google Cloud CDN、Amazon CloudFront 和 Microsoft Azure CDN。

6. API設(shè)計(jì)

(1) API設(shè)計(jì)充

當(dāng)客戶端和服務(wù)器之間的契約。在設(shè)計(jì)API時(shí),考慮以下關(guān)鍵因素:

  • API類型:在設(shè)計(jì)API時(shí),首先決定類型:RESTful、GraphQL或gRPC。
  • 通信協(xié)議:HTTP、WebSockets等。
  • 數(shù)據(jù)傳輸機(jī)制:JSON、XML或協(xié)議緩沖區(qū)。
  • 安全性:考慮采取措施防范字典攻擊、XSS、CSRF、HPP攻擊,并使用速率限制。
  • 查詢和排序:如何檢索和排序數(shù)據(jù)?
  • 分頁(yè):不要在一個(gè)請(qǐng)求中獲取所有數(shù)據(jù),你需要分頁(yè)。
  • 性能:優(yōu)化應(yīng)用程序的初始加載時(shí)間。
  • 錯(cuò)誤處理:確保錯(cuò)誤是一致且信息豐富的。

(2) 服務(wù)器驅(qū)動(dòng)和客戶端驅(qū)動(dòng)設(shè)計(jì)

根據(jù)你的應(yīng)用程序,你可能會(huì)選擇服務(wù)器驅(qū)動(dòng)或客戶端驅(qū)動(dòng)的API設(shè)計(jì),每種設(shè)計(jì)都提供一套自己的優(yōu)勢(shì)。

1*w0ybXh8JwTLGstzTREODIw.png

  • 服務(wù)器驅(qū)動(dòng):適用于需要應(yīng)用商店批準(zhǔn)的移動(dòng)應(yīng)用程序發(fā)布的情況。
  • 客戶端驅(qū)動(dòng):在客戶端方面提供更大的靈活性。

三、結(jié)論

從擴(kuò)展策略和負(fù)載均衡技術(shù)到緩存和API設(shè)計(jì)的微妙之處,掌握這些領(lǐng)域可以讓你在競(jìng)爭(zhēng)中具備強(qiáng)大的優(yōu)勢(shì)。

責(zé)任編輯:趙寧寧 來源: 小技術(shù)君
相關(guān)推薦

2011-03-28 11:05:17

ODBC

2010-07-07 15:17:40

LDAP協(xié)議

2010-08-23 16:58:17

DHCP協(xié)議

2010-06-24 13:26:53

FTP協(xié)議

2014-04-16 15:11:19

Spark

2009-03-20 11:46:10

MGCP協(xié)議網(wǎng)關(guān)

2012-09-11 14:39:03

Moosefs

2010-01-25 14:13:36

Android菜單系統(tǒng)

2010-04-22 12:27:16

Aix操作系統(tǒng)

2011-05-18 09:52:28

2010-06-08 16:22:20

2013-09-02 10:23:14

2010-06-29 13:00:49

EIGRP協(xié)議

2010-06-12 14:12:22

RSVP協(xié)議

2011-03-22 14:20:23

數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范

2010-06-08 16:52:38

CANopen總線協(xié)議

2013-05-20 10:42:12

2010-01-25 10:57:57

Android系統(tǒng)應(yīng)用

2024-07-03 10:54:09

2020-04-20 10:10:20

IT領(lǐng)導(dǎo)者首席信息官CIO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)