您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何解決CDN等高并發的問題,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
(一)集群與分布式
集群和分布式都是使用多臺服務器進行處理的。集群中的每臺服務器具有相同的功能,處理請求時調用哪臺服務器都可以,主要起分流的作用。而分布式是將不同的業務放到不同的服務器中,處理一個請求可能要用到多臺服務器,這樣就可以提高一個請求的處理速度。集群的方式有兩種:靜態資源集群和應用程序集群。靜態資源集群比較簡單,而應用程序集群對于可能緩存的一些數據,需要在集群內的所有服務器之間進行同步,比如session。session的同步方式有兩種,一種是session發生變化后主動同步到其他服務器,如tomcat,一種是使用一個公共的程序統一管理session,如memcache、redis等。session需要同步的本質是為了讓不同的服務器處理同一個用戶的請求,因而在負載均衡的時候,如果可以將同一個用戶的請求分配到同一個服務器,那么就不需要session了。為了防止有機器宕機后丟失數據,還可以將集群的服務器進行分組,在小范圍的組內同步session。對于集群來說另外一個核心問題就是負載均衡,也就是接收到一個請求之后具體分配到哪個服務器去處理,可以通過軟件處理或使用專門的硬件(如F5)處理。
(二)應用和靜態資源分離
剛開始的時候應用和靜態資源是保存在一起的,當并發量達到一定程度的時候就需要將靜態資源保存到專門的服務器中,靜態資源主要包括圖片、視頻、js、css和一些資源文件,沒有狀態,便于分離,直接存放到相應的服務器即可。通過專門的域名去訪問。
(三)頁面緩存
頁面緩存是將應用生成的頁面緩存起來,這樣就不需要每次都重新生成頁面了,從而減少了對應用服務器的訪問請求。Nginx服務器自帶頁面緩存功能。
(四)CDN
CDN是一種特殊的集群頁面緩存服務器,它和普通的頁面緩存服務器的區別在于它的存放和分配請求的方式。CDN服務器分布在全國各個地區,對于用戶的請求會選擇一個最合適的CDN服務器去處理,比如聯通用戶的請求會被分配給聯通的CDN服務器節點,上海用戶的請求會分配給上海的CDN服務器節點去處理。每個CDN節點就是一個頁面緩存服務器,如果沒有緩存的資源就會從主服務器獲取,否則直接返回。CDN分配請求的方式比較特殊,它不是通過普通的負載均衡服務器來分配請求,而是通過使用一個特殊的CDN域名解析服務器來分配請求。CNAME將域名解析到一個特殊的域名,然后通過CDN域名解析服務器對這個特殊的域名進行解析,分配到某個CDN服務器節點。
(五)反向代理
反向代理指的是客戶端直接訪問的服務器并不是真正提供服務的,它從別的服務器獲取資源,然后將結果返回給用戶。
關于如何解決CDN等高并發的問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。