可承載千萬級用戶的互聯網公司網絡框架詳解

一、架構

在這裏插入圖片描述

二、流程解釋

1.DNS根據域名查詢地址

注:因爲DNS服務器性能數量的原因,有時候公司會選擇讓DNS來承擔一部分分流的任務,在DNS服務器中爲同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的。

2.公司部署防火牆攔截請求

3.請求發往nginx來進行負載均衡

注:nginx的5種分發方式:https://blog.csdn.net/shuzl213/article/details/53366895

4.請求分發到數百個業務系統集羣,而每個業務系統又包含多個微服務集羣,每個微服務又包含多個接口,每個接口又有多個服務器,而請求最後正是分發到每一個服務器上

業務系統每個業務都是一個甚至多個系統集羣, 這些集羣只負責接受請求, 調用所需要的服務(微服務器) 再組裝結果返回數據,這裏沒有真正的業務邏輯, 也就是SSM框架裏的controller的作用,像調用本地的service一樣調用微服務(當然調用的時候是要經過一些協議,申請等像zookeeper, spring cloud), 業務系統的數量視公司規模而定, 大型的互聯網公司大概有幾百個系統集羣

注:微服務集羣包括消息隊列集羣(主從容災),消息推送集羣,文件存儲集羣(主從容災),緩存集羣(通過和數據庫聯繫實現主從容災)等集羣服務

5.服務器與數據庫進行交互,數據庫需要做讀寫分離和主從容災配置。

讀寫分離:主從數據庫實現讀寫分離,主數據庫負責“寫操作”,從數據庫負責“讀操作”,根據壓力情況,從數據庫可以部署多個提高“讀”的速度,藉此來提高系統總體的性能。同時要解決主從數據庫數據同步的問題,在主數據庫寫入數據後要保證從數據庫的數據也要更新。

主從容災配置:當有一個數據庫發生問題時,能把功能即使切換到另一個數據庫,保持系統的正常運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章