最近研究了幾個關於阿里研究院對於高併發的解決方案,總結一下,漲漲姿勢。
1、客戶端通過企業防火牆傳送請求
2、3、
伺服器通過訪問資料庫進行互動,同樣高併發大資料會涉及到資料庫處理高併發的方案
4、另外會新增多台伺服器用作快取、訊息處理等
高併發一般會發生在1、負載均衡處 2
、資料庫高併發;阿里研究院也針對這兩個併發情況提供了相應的解決方案。
應對高併發,解決方案大多從伺服器級別和應用程式級別【硬體和軟體】兩個方向進行,如增大伺服器的cpu,增加記憶體,或者直接購買高效能服
務器。但隨著業務的不斷增加,伺服器效能也達到瓶頸。第二個方向就是從應用程式級別也就是軟體設計編碼方向,如
html靜態化、服
務器分離、分布式快取,減少客戶端訪問時併發請求的資料。
什麼是dns?
簡單理解:domain name system,網域名稱系統是網際網路上作為網域名稱和
ip位址
相互對映的乙個
分布式資料庫
,能夠使使用者更方便的訪問
網際網路。例如我們將程式發布到192.168.55.145 和144兩台伺服器上,通過dns可以設定乙個統一的訪問入口,如www.max1209.com對這兩台伺服器上的服務進行訪問。使用者直接訪問www.max1209.com主機名而不需記住機器ip,
通過主機
名,最終得到該主機名
進行網域名稱解析得到
對應的ip位址
進行訪問。
dns如何實現負載均衡?
在dns伺服器中,可以為多個不同的ip配置同乙個名字,這個資料被傳送給其他名字伺服器,而最終查詢這個名字的客戶機將在解析這個名字時隨機使用其中乙個位址。因此,對於同乙個名字,不同的客戶機會得到不同的位址,因此不同的客戶訪問的也就是不同位址的web伺服器。
簡單說,也就是乙個外觀,給部署了同乙個**的n多台伺服器設定同乙個名字,不同地區或者不同特點的使用者訪問同乙個名字,實際接收客戶請求的是外觀裡的不同ip的伺服器,
從而達到負載均衡的目的
。同時面對更高訪問量需求,dns可以以設定成樹狀,多個dns伺服器將請求分發給下乙個dns伺服器,n層解析之後再訪問到應用伺服器,這樣就可以增加應用伺服器的個數,應對更大併發資料請求。
但使用dns負載均衡的時候,
如果伺服器發生故障,dns繼續把請求傳送給故障機器,一直到把故障伺服器從dns中移走為止,這樣使用者就只能等到dns連線超時後才能訪問到目標**。
下面將介紹其他兩種負載均衡的實現方案。
高可用 高併發 負載均衡架構設計
2017 09 05 58沈劍 架構師之路 架構師之路 架構師之路 功能介紹 架構師之路,堅持撰寫接地氣的架構文章 都收到好評 本文再做總結,體系化介紹高可用,高併發,負載均衡的一些架構技術。一 高可用 文章 究竟什麼是網際網路高可用架構設計 內容 二 高併發 文章 究竟什麼是網際網路高併發架構設計...
高可用 高併發 負載均衡架構設計
017 09 05 58沈劍 架構師之路 架構師之路 本文介紹高可用,高併發,負載均衡的一些架構技術。一 高可用 文章 究竟什麼是網際網路高可用架構設計 內容 二 高併發 文章 究竟什麼是網際網路高併發架構設計 內容 三 反向 文章 究竟什麼是網際網路四層 七層反向 內容 四 負載均衡 文章 究竟什...
Django 高併發負載均衡
當一台伺服器的效能達到極限時,我們可以使用伺服器集群來提高 的整體效能。那麼,在伺服器集群中,需要有一台伺服器充當排程者的角色,使用者的所有請求都會首先由它接收,排程者再根據每台伺服器的負載情況將請求分配給某一台後端伺服器去處理。那麼在這個過程中,排程者如何合理分配任務,保證所有後端伺服器都將效能充...