回覆列表
-
1 # 喲喲吼說科技
-
2 # 網路圈
任何一個網站隨著流量的增長,往往一臺伺服器是無法承擔壓力的,所以在大型站點中都有很多的節點伺服器去分擔壓力以提高整體網站的併發和效能。這種“分流”機制其實就是我們常說的“負載均衡”,在負載均衡這種架構模式下,我們往往把主伺服器稱為根伺服器(主伺服器),其它的節點伺服器稱之為映象伺服器(從伺服器)。
映象伺服器與根伺服器的關係“映象”一詞從字面意思上理解就像照鏡子一樣的,映象伺服器與主伺服器的內容是完全一致的,只不過映象伺服器和主伺服器是部署在不同位置或不同網路環境下,用來分擔伺服器的負載。
映象伺服器的內容是從主伺服器上同步複製過來的。
映象伺服器與主伺服器之間如何保證資料一致性?映象伺服器與主伺服器間的資料一致性主要靠的是同步機制,說通俗點就是資料的備份機制,而備份又分為:全量備份、增量備份。
另外也要看伺服器的用途,不同用途的伺服器,其主伺服器與映象伺服器間的資料同步方式也不同。一般而言可分為下面幾類:
1、資料庫伺服器
對於資料庫伺服器,根伺服器(主)與映象伺服器(從)間的資料同步依靠的是資料“主從同步”機制的實現,比如說MySQL資料庫的主從同步原理就是基於Binlog(二進位制日誌)實現的。
2、檔案類伺服器
檔案類伺服器的同步機制更多的是增量備份,肯定不能全量備份,因為全量備份容易導致資料傳輸量大、耗時長,影響了映象伺服器的穩定。
在Linux系統中,可以藉助Rsync + Inotify 方案實現增量備份/同步,一有檔案更新時自動同步至映象伺服器中,優點就是:傳輸量小、耗時短、及時性高。
Anycast是在網路上透過Anycast地址來標示一組提供特定服務的主機,資料報文可以被網路路由到這一組目標主機裡的任意一臺主機上,從而提供無狀態、盡力而為的服務。
如題,根伺服器與映象之間如何保持一致性?
這就需要用到上述的這種Anycast技術了。全世界根伺服器共有13臺,其中主根在美國,另外12臺輔根分佈在其它各地,其中亞洲有1臺,位於日本。部分的根伺服器藉由Anycast技術在全球設有多個映象點,其中位於中國的有3個,分別是F根映象、I根映象和J根映象。
下面喲喲來介紹一下什麼是Anycast技術?以及它的優勢之處:
Anycast技術是集Multicast和Unicast特性於一體的特殊IP地址型別,因此也成Anycast為任播。
宏觀來講,Anycast與Multicast相類似,同一種類型的資料同時對應一組接受者;
微觀來講,Anycast與Unicast又大同小異,每一個單獨的會話能夠被路由到唯一的目標主機。
如下圖(紅色為傳送端,綠色為接收端):
優勢之處:
1、防範DDOS攻擊各地部署伺服器節點,訪問請求會以IGP路由的最短路徑來計算,那麼攻擊會被分攤到各地的伺服器,到達防範DDOS攻擊的效果;
2、負載均衡各地部署伺服器節點,那麼訪問流量以IGP路由最短路徑的方式會分攤到各個節點,達到負載均衡的效果;
3、裝置的高冗餘性和可用性透過Anycast技術,無需藉助任何負載均衡器就可以提供高冗餘性和可靠性;