CDN可以加速API接口嗎?

範柯左


CDN是在1995年由美國麻省理工大學提出來的,是一整套能夠實現用戶就近訪問網絡的解決方案。雖然CDN在90年代就提出來了,但也是最近幾年才被國內網站廣泛應用。以前都是國內大型網站才會採用的加速方案,而現在甚至個人網站都用上了CDN。

啥是CDN?

CDN是內容分發網絡的簡稱,它是一種分佈式部署方案,CDN兩大核心功能即:內容存儲+分發。CDN有很多節點服務器,CDN廠商將這些節點緩存服務器分佈在全國各地,利用負載均衡+智能DNS技術實現將用戶的訪問分發到距離用戶最近的緩存服務器上,這樣緩存服務器直接響應了用戶的請求,加快了網站響應速度。

CDN具備哪些功能?

CDN功能很強大,一般CDN都具備以下功能:

1、網站加速

CDN利用智能DNS的負載均衡技術能實現用戶就近訪問Cache節點服務器,能有效提高網站的響應速度。

2、鏡像功能

CDN有很多節點,這些節點服務器會均衡分佈在電信、聯通、移動網絡中。這樣一來就消除了不同運營商間的互聯互通問題,跨網關訪問不存在過多的時間消耗。

3、緩解了源站服務器壓力

通過合理的利用緩存策略,使得較多流量落在了CDN節點服務器之上,回源頻率較小,這樣就減輕了源站服務器的壓力。

4、集群抗攻擊

上面說過了,CDN本身就是一種分佈式部署方案,CDN對一般中小型DDoS攻擊有一定防禦能力。

使用CDN是否可以加速API接口?

一般而言多數用戶都是將CDN作為網站加速來用,很多人覺得API數據是不能被緩存的,所以覺得API不應該用CDN加速。其實我們使用CDN同樣可以給API做加速。上面講到了,CDN可以消除不同運營商間的互訪互通問題,舉例說明一下:

假設你的API服務託管在電信機房,那麼移動用戶訪問你的API時可能速度會比較慢,這是因為不同運營商間的互聯互通訪問時會經過較多網絡節點,耗時會久一些。

但如果我們用了CDN給API來加速,那移動用戶訪問我們的API時,請求會先到距離用戶最近的CDN節點服務器上,由這個節點服務器去請求API,這個CDN節點服務器一般是多線接入的,這樣會盡可能減少用戶到機房的網絡故障機率。

另外使用了CDN後會隱藏源站服務器的IP,一定程度上提升了源站服務器的安全。


以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!

網絡圈


“我是喲喲吼說科技,專注於數據網絡的回答,歡迎大家與我交流數據網絡的問題”

API(Application Programming Interface,應用程序編程接口)是一組定義、程序及協議的集合,提供通用的功能集,通過API接口實現計算機軟件之間的相互通信。

如題,CDN可以通過API接口加速嗎?

喲喲認為如果想要實現CDN的加速,最好採用增加節點,通過後端設備進行數據同步的方式,而API接口基本都是實時查詢的數據。

下面喲喲來簡單介紹一下如何實現CDN的加速:

CDN(Content Delivery Nerwork,內容分發網絡)通過在因特網中新增一層新的網絡架構,將內容分佈到最接近用戶的網絡邊緣,用以提供用戶訪問的響應速度。

CDN具體的工作流程:用戶在訪問某網站域名時,會先向本地DNS服務器請求該域名對應的解析,若本地DNS服務器沒有,則經過DNS根服務器、域服務器等一系列服務器最終發送至網站的主DNS,根據某些策略來確認最適合的CDN節點,並將解析的結果返回給用戶。

假設國內CDN節點過少,所有的用戶訪問請求均被定位到該CDN節點,那會造成網絡的訪問響應變慢,影響體驗效果。若實現CDN的加速,最可行的辦法就是增加CDN的節點,根據DNS的調度將訪問用戶通過方位調度到距離最近的CDN節點,並通過GSLB負載均衡的技術,實現對CDN的加速。

歡迎大家多多關注我,在下方評論區說出自己的見解。


喲喲吼說科技


CDN是內容分發網絡,也叫邊沿節點,就是在各地配置一些服務器,在上面緩存靜態文件和內容,或者視頻也可以,這些內容之所以叫靜態的的,就是基本上不太改動的,這樣,當用戶訪問這些內容的時候就智能的從離用戶最近的CDN節點取得這些靜態內容,給用戶一個良好的體驗。

但是說到api接口,通常都是返回動態的內容,有實時性要求,所以基本不可能將動態內容推送到各地的幾十甚至上百個cdn邊沿節點去更新和同步,所以現在做不到題主說的這一點,就是用cdn去緩存和加速api的調用。目前沒有一個公有云提供商可以做到,包括aws,阿里雲,騰訊雲,華為雲等。

但是,aws提供了另外一種思路,可以利用cdn的邊沿節點來加速API調用。思路是,用戶通過cdn邊沿節點來調用API接口,這樣,cdn的邊沿節點離用戶比較近,所以網路延遲小,再由CDN的邊沿節點將API調用路由到雲中真正的api服務器上,走的是CDN邊沿節點到雲中心的專用網路,這樣整個的網絡的延遲就會比較小,而且,如果是加密鏈接,可以在cdn邊沿節點上就解密,這樣後面cDN邊沿節點到雲API服務器就可以用非加密鏈接,這樣的網絡延遲和效率也會提高。這樣一來,總體的API調用的API網絡傳輸要比用戶直接用公網連接雲API服務器要延遲小一些,效率也高一些。但是這個功能目前只有aws有,這是國內這些雲還不具備的。


信欣92041382


可以,但受限於場景。

概念:CDN(Content Delivery Networ)內容分發網絡,常用於 WEB。CDN 初期是用來降低多次路由和跨運營商傳輸時的網絡延遲,隨著互聯網內容的增長,CDN 現在主要解決的是服務器提供靜態文件時的帶寬問題(都 2018 年了電信 4Mbps 企業專線的每月價格仍然上千)。概念不多解釋了,百科更詳細。

接下來是你的問題:

1、WEB API 通常需要處理服務器內不公開的數據,CDN 節點既沒有你處理數據的程序,也不能得到你的內部數據,所以,每一次 WEB API 調用都需要你的服務器進行處理,CDN 不能加速服務器中的業務數據處理。

2、HTTPS 協議需要建立加密的傳輸層,當 WEB API 調用達到一定量時,加密的 CPU 開銷也不可忽。通過 CDN,源服務器只需向 CDN 節點提供 HTTP 訪問,由 CDN 節點使用 SSL 證書對傳輸層加密、向客戶端提供 HTTPS 訪問。CDN 可以去除服務器處理 SSL 加密的負載,起到加速作用。(阿里雲 CDN 已經提供這項功能)

3、如果你的 WEB API 只是在服務器和服務器之間調用,而且調用也不要求 HTTPS,那麼 CDN 是起不到作用的。


我是瘋狗我怕誰


cdn通常只能加速靜態資源,比如圖片,js這些。但是現在阿里出了一個全站加速,我們測試是可以加速api接口的


分享到:


相關文章: