在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

業(yè)界常用的多活手段及各方案優(yōu)缺點

454398 ? 來源: Chinaunix ? 作者:vivo互聯網技術 ? 2020-10-10 14:00 ? 次閱讀

采用高可用系統架構支持重要系統,為關鍵業(yè)務提供7x24的不間斷服務,已經成為眾多企業(yè)保障業(yè)務穩(wěn)定、持續(xù)運轉的主要選擇。服務多活是高可用架構重要實施手段,本文介紹了一些業(yè)界常用的多活手段例如同城雙活、兩地三中心、異地多活架構設計方案并詳述了各種方案的優(yōu)缺點。

一、為什么要做多活

隨著移動互聯網的深入發(fā)展,用戶增長達到一定規(guī)模后,不少企業(yè)都會面高并發(fā)業(yè)務和臨海量數據的挑戰(zhàn),傳統的單機房在機器容量上存在瓶頸。在一些極端場景下,有可能所有服務器都出現故障,例如機房斷電、機房火災、地震等這些不卡抗拒因素會導致系統所有服務器都故障從而導致業(yè)務整體癱瘓,而且即使有其他地區(qū)的備份,把備份業(yè)務系統全部恢復到能夠正常提供業(yè)務,花費的時間也比較長。為了滿足中心業(yè)務連續(xù)性,增強抗風險能力,多活作為一種可靠的高可用部署架構,成為各大互聯網公司的首要選擇。

1、多活場景

多活架構的關鍵點就是指不同地理位置上的系統都能夠提供業(yè)務服務,這里的“活”是指實時提供服務的意思。與“活”對應的是字是“備”,備是備份,正常情況下對外是不提供服務的,如果需要提供服務,則需要大量的人工干預和操作,花費大量的時間才能讓“備”變成“活。單純從描述來看多活很強大,能夠保證在災難的情況下業(yè)務都不受影響,是不是意味著不管什么業(yè)務,我們都要去實現多活架構呢?其實不是,實現多活架構都要付出一定的代價,具體表現為:

不同多活方案實現復雜度不一樣,隨著業(yè)務規(guī)模和容災級別的提升,多活方案會給業(yè)務系統設計帶來更大復雜度。

不管采用哪種多活方案都難以完全避免跨機房甚至是跨地區(qū)服務調用帶來的耗時增加。

多活會帶來成本會上升,畢竟要多在一個或者多個機房搭建獨立的一套業(yè)務系統。

因此,多活雖然功能很強大,但也不是每個業(yè)務都要上多活。例如,企業(yè)內部的 IT 系統、管理系統、博客站點等,如果無法承受異地多活帶來的復雜度和成本,是可以不做異地多活的,而對于重要的業(yè)務例如核心金融、支付、交易等有必要做多活。

2、多活方案

常見的多活方案有同城雙活、兩地三中心、三地五中心、異地多活等多種技術方案,不同多活方案技術要求、建設成本、運維成本都不一樣,下面我們會逐步介紹這幾種多活方案并給出每種方案的優(yōu)點和缺點。選用哪種方案要結合具體業(yè)務規(guī)模、當前基礎建設能力、投入產出比等多種因素來決定。

二、同城雙活

同城雙活是在同城或相近區(qū)域內建立兩個機房。同城雙機房距離比較近,通信線路質量較好,比較容易實現數據的同步復制 ,保證高度的數據完整性和數據零丟失。同城兩個機房各承擔一部分流量,一般入口流量完全隨機,內部RPC調用盡量通過就近路由閉環(huán)在同機房,相當于兩個機房鏡像部署了兩個獨立集群,數據仍然是單點寫到主機房數據庫,然后實時同步到另外一個機房。下圖展示了同城雙活簡單部署架構,當然一般真實部署和考慮問題要遠遠比下圖復雜。

服務調用基本在同機房內完成閉環(huán),數據仍然是單點寫到主機房數據儲存,然后實時同步復制到同城備份機房。當機房A出現問題時候運維人員只需要通過GSLB或者其他方案手動更改路由方式將流量路由到B機房。同城雙活可有效用于防范火災、建筑物破壞、供電故障、計算機系統及人為破壞引起的機房災難。

1、服務路由

zk集群:每個機房都部署一個zk集群,機房之間zk數據進行實時雙向同步,每個機房都擁有所有機房zk注冊數據。

路由方案:條件路由 》 就近路由 》 跨機房路由,盡量避免跨機房調用。

訂閱方案:consumer訂閱所有機房服務,provider只向該機房zk集群進行注冊。

2、數據雙活

MySQL:采用MHA部署方案,主從半同步方案保證數據一致性。讀寫分離、讀就近路由到機房內數據節(jié)點、寫路由到master節(jié)點所在機房。

Redis: Redis cluster模式主從同步,就近讀、寫路由主節(jié)點機房。采用原生主從同步跨機房寫性能較低,也可以依靠CRDT理論構建多節(jié)點雙向同步,實現機房就近讀寫,但是整體實現較為復雜。

3、同城雙活方案評估

優(yōu)勢

服務同城雙活,數據同城災備,同城不丟失數據情況下跨機房級別容災。

架構方案較為簡單,核心是解決底層數據雙活,由于雙機房距離近,通信質量好,底層儲存例如mysql可以采用同步復制,有效保證雙機房數據一致性。

劣勢

數據庫寫數據存在跨機房調用,在復雜業(yè)務以及鏈路下頻繁跨機房調用增加響應時間,影響系統性能和用戶體驗。

保證同城市地區(qū)容災,當服務所在的城市或者地區(qū)網絡整體故障、發(fā)生不可抗拒的自然災害時候有服務故障以及丟失數據風險。對于核心金融業(yè)務至少要有跨地區(qū)級別的災備能力。

服務規(guī)模足夠大(例如單體應用超過萬臺機器),所有機器鏈接一個主數據庫實例會引起連接不足問題。

三、兩地三中心架構

所謂兩地三中心是指 同城雙中心 + 異地災備中心。異地災備中心是指在異地的城市建立一個備份的災備中心,用于雙中心的數據備份,數據和服務平時都是冷的,當雙中心所在城市或者地區(qū)出現異常而都無法對外提供服務的時候,異地災備中心可以用備份數據進行業(yè)務的恢復。

業(yè)界常用的多活手段及各方案優(yōu)缺點

兩地三中心方案評估

優(yōu)勢

服務同城雙活,數據同城災備,同城不丟失數據情況下跨機房級別容災。

架構方案較為簡單,核心是解決底層數據雙活,由于雙機房距離近,通信質量好,底層儲存例如mysql可以采用同步復制,有效保證雙機房數據一致性。

災備中心能防范同城雙中心同時出現故障時候利用備份數據進行業(yè)務的恢復。

劣勢

數據庫寫數據存在跨機房調用,在復雜業(yè)務以及鏈路下頻繁跨機房調用增加響應時間,影響系統性能和用戶體驗。

服務規(guī)模足夠大(例如單體應用超過萬臺機器),所有機器鏈接一個主數據庫實例會引起連接不足問題。

出問題不敢輕易將流量切往異地數據備份中心,異地的備份數據中心是冷的,平時沒有流量進入,因此出問題需要較長時間對異地災備機房進行驗證。

同城雙活和兩地三中心建設方案建設復雜度都不高,兩地三中心相比同城雙活有效解決了異地數據災備問題,但是依然不能解決同城雙活存在的多處缺點,想要解決這兩種架構存在的弊端就要引入更復雜的解決方案去解決這些問題。

四、異地多活

異地多活指分布在異地的多個站點同時對外提供服務的業(yè)務場景。異地多活是高可用架構設計的一種,與傳統的災備設計的最主要區(qū)別在于“多活”,即所有站點都是同時在對外提供服務的。

1、異地多活挑戰(zhàn)

(1)應用要走向異地,首先要面對的便是物理距離帶來的延時。如果某個應用請求需要在異地多個單元對同一行記錄進行修改,為滿足異地單元間數據庫數據的一致性和完整性,需要付出高昂的時間成本。

(2)解決異地高延時即要做到單元內數據讀寫封閉,不能出現不同單元對同一行數據進行修改,所以我們需要找到一個維度去劃分單元。

(3)某個單元內訪問其他單元數據需要能正確路由到對應的單元,例如A用戶給B用戶轉賬,A用戶和B用戶數據不在一個單元內,對B用戶的操作能路由到相應的單元。

(4)面臨的數據同步挑戰(zhàn),對于單元封閉的數據需全部同步到對應單元,對于讀寫分離類型的,我們要把中心的數據同步到單元。

2、單元化

所謂單元(下面我們用RZone代替),是指一個能完成所有業(yè)務操作的自包含集合,在這個集合中包含了所有業(yè)務所需的所有服務,以及分配給這個單元的數據。

單元化架構就是把單元作為系統部署的基本單位,在全站所有機房中部署數個單元,每個機房里的單元數目不定,任意一個單元都部署了系統所需的所有的應用。單元化架構下,服務仍然是分層的,不同的是每一層中的任意一個節(jié)點都屬于且僅屬于某一個單元,上層調用下層時,僅會選擇本單元內的節(jié)點。

選擇什么維度來進行流量切分,要從業(yè)務本身入手去分析。例如電商業(yè)務和金融的業(yè)務,最重要的流程即下單、支付、交易流程,通過對用戶id進行數據切分拆分是最好的選擇,買家的相關操作都會在買家所在的本單元內完成。對于商家相關操作則無法進行單元化,需要按照下面介紹的非單元化模式去部署。當然用戶操作業(yè)務并非完全能避免跨單元甚至是跨機房調用,例如兩個買家A和B轉賬業(yè)務,A和B所屬數據單元不一致的時候,對B進行操作就需要跨單元去完成,后面我們會介紹跨單元調用服務路由問題。

3、非單元化應用和數據

對于無法單元化的業(yè)務和應用,會存在下面兩種可能性:

(1)延時不銘感但是對數據一致性非常銘感,這類應用只能按照同城雙活方式部署。其他應用調用該類應用的時候會存在跨地區(qū)調用可能性,要能容忍延時,這類應用我們稱為MZone應用。

(2)對數據調用延時銘感但是可以容忍數據短時間不一致,這類應用和數據可以保持一個機房一份全量數據,機房之間以增量的方式實時同步,這類應用我們暫時稱為QZone。

加上兩種以上非單元化應用我們的機房部署可能是下面這樣,每個機房有兩個RZone,MZone保持類似兩地三中心部署方式,異地機房調用MZone服務需要跨地區(qū)、跨機房調用。而QZone每個機房都保持一份完整數據,機房之間通過數據鏈路實時相互同步。

4、請求路由

(1)Api入口網關

為了保證用戶請求能正確進入自己所屬單元,每一個機房都會部署流量入口網關集群。當用戶請求到達進入機房內最先進入到流量網關,流量網關能感知全局的流量分片情況,計算用戶所處流量單元并將流量轉發(fā)到對應的單元,這樣就可以將用戶請求路由到對應的單元內。

業(yè)界常用的多活手段及各方案優(yōu)缺點

采用GateWayr轉發(fā)方式可以確定用戶單元從而將用戶流量路由到正確位置,但是HTTP轉發(fā)也會造成一定性能損耗。為了減少HTTP流量轉發(fā)量,可以在在用戶請求返回的時候在cookie上帶上該用戶的路由標識信息。當用戶下次在請求的時候請求的時候可以提前獲取到路由標識直接請求到對應的單元,這種方式可以大幅度減少HTTP流量轉發(fā)。

(2)服務路由

雖然應用已經進行了單元化,但是依然無法避免跨單元調用,例如A用戶給B用戶轉賬,如果A和B所處單元不同,對B用戶操作需要跨單元去調用,這個時候需要能將請求路由到B用戶數據所在的單元。異地多活情況下RPC、MQ、DB等等中間件都需要提供路由能力,將請求能正確路由到對應的單元。下面以RPC路由為例說明異地多活下中間件是如何進行路由的,對于其他中間件(數據庫中間件、緩存中間、消息中間件等)也是一樣方法。

public interface ManualInterventionFacade {

@ZoneRoute(zoneType= ZoneType.RZone,uidClass = UidParseClass.class)

ManualRecommendResponse getManualRecommendCommodity(ManualRecommendRequest request);

}

上面展示了多活下的RPC接口定義方法,需要注明該RPC類型,如果是RZone服務必須要提供解析uid方法。下圖展示了RPC注冊中心路由尋址過程,和同城雙活有一定的差異性。

業(yè)界常用的多活手段及各方案優(yōu)缺點

5、數據同步

(1)QZone類型數據:這種數據只需要保證最終一致性,對于短暫不一致無影響,但是對延時非常銘感,例如一些算法、風控、配置等數據。這類數據基本上都是每個機房部署一套QZone,然后機房之間相互同步。

業(yè)界常用的多活手段及各方案優(yōu)缺點

(2)MZone數據:這類數據對一致性非常銘感,不能出現不一致,只能采用同城雙活部署方式,業(yè)務需要能容忍異地調用延時。

(3)RZone數據:這類數據每個Zone都有自己的主節(jié)點,如果數據不在該單元內需要路由到對應的節(jié)點去寫。這類數據部署情況像下面這樣

6、方案評估

優(yōu)勢

容災能力大幅度提高,服務異地多活,數據異地多活。

理論上系統服務可以水平擴展,異地多機房突破大幅度提升整體容量,理論上不會有性能擔憂。

將用戶流量切分到多個機房和地區(qū)去,有效能減少機房和地區(qū)級別的故障影響范圍。

劣勢

架構非常復雜,部署和運維成本很高,需要對公司依賴的中間件、儲存做多方面能力改造。

對業(yè)務系統有一定的侵入性,由于單元化影響服務調用或者寫入數據要路由到對應的單元,業(yè)務系統需要設置路由標識(例如uid)。

無法完全避免跨單元、跨地區(qū)調用服務,例如上面的轉賬業(yè)務。我們要做的是盡力避免跨地區(qū)的服務調用。

五、總結

本文討論了一些多活建設的大體思路以及一些關鍵技術點的解決方案,各種不同方案對比。要建立起完整的異地多活能力遠遠比上面討論的要復雜的多,需要對依賴的各種中間件、儲存等做相應的單元化改造并配套完整的流量調度和運維管控能力 。

由于篇幅限制本文并未詳細介紹各種儲存(例如Redis、MySQL)在多活下數據同步復制以及高可用方案,有興趣的同學可以去深入了解這方面知識。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    13

    文章

    9717

    瀏覽量

    87385
  • 移動互聯網
    +關注

    關注

    5

    文章

    600

    瀏覽量

    34589
  • 系統架構
    +關注

    關注

    1

    文章

    72

    瀏覽量

    23795
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    BP神經網絡的優(yōu)缺點分析

    BP神經網絡(Back Propagation Neural Network)作為一種常用的機器學習模型,具有顯著的優(yōu)點,同時也存在一些不容忽視的缺點。以下是對BP神經網絡優(yōu)缺點的分析: 優(yōu)點
    的頭像 發(fā)表于 02-12 15:36 ?792次閱讀

    硅谷物理服務器的優(yōu)缺點分析

    硅谷物理服務器因其高性能、高質量和先進的技術支持而在全球范圍內享有很高的聲譽。硅谷物理服務器的優(yōu)缺點分析如下,主機推薦小編為您整理發(fā)布硅谷物理服務器的優(yōu)缺點分析。
    的頭像 發(fā)表于 02-12 09:30 ?294次閱讀

    香港主機托管和國內主機的優(yōu)缺點比較

    香港主機托管和國內主機(以大陸主機為例)的優(yōu)缺點比較,主機推薦小編為您整理發(fā)布香港主機托管和國內主機的優(yōu)缺點比較,希望對您有幫助。
    的頭像 發(fā)表于 02-05 17:42 ?378次閱讀

    東京站群服務器有哪些優(yōu)缺點

    東京站群服務器,作為部署在東京地區(qū)的服務器集群,專為站群優(yōu)化而建,其優(yōu)缺點如下,主機推薦小編為您整理發(fā)布東京站群服務器有哪些優(yōu)缺點
    的頭像 發(fā)表于 02-05 17:39 ?315次閱讀

    光譜傳感器的優(yōu)缺點

    光譜傳感器是一種能夠檢測并響應光譜范圍內不同波長光線的傳感器。以下是對其優(yōu)缺點的詳細分析:
    的頭像 發(fā)表于 01-27 15:28 ?557次閱讀

    不同類型adc的優(yōu)缺點分析

    ADC(模數轉換器)是將模擬信號轉換為數字信號的電路,根據轉換原理和應用需求的不同,ADC可以分為多種類型,每種類型都有其獨特的優(yōu)缺點,以下是對不同類型ADC的優(yōu)缺點分析: 逐次逼近型ADC(SAR
    的頭像 發(fā)表于 11-19 16:58 ?2682次閱讀

    開環(huán)和閉環(huán)功放的區(qū)別,優(yōu)缺點,應用場合有什么不同?

    問下TI的工程師,開環(huán)和閉環(huán)功放的區(qū)別,優(yōu)缺點,應用場合有什么不同?請解釋下,謝謝!
    發(fā)表于 11-04 06:33

    不同類型UPS電源的優(yōu)缺點

    不間斷電源(UPS)是為關鍵設備提供穩(wěn)定、不間斷電力供應的重要設備。根據設計和功能的不同,UPS可以分為幾種類型,每種類型都有其獨特的優(yōu)缺點。以下是一些常見的UPS類型及其優(yōu)缺點的概述: 在線式
    的頭像 發(fā)表于 10-28 10:45 ?1752次閱讀

    FPGA與ASIC的優(yōu)缺點比較

    FPGA(現場可編程門陣列)與ASIC(專用集成電路)是兩種不同的硬件實現方式,各自具有獨特的優(yōu)缺點。以下是對兩者優(yōu)缺點的比較: FPGA的優(yōu)點 可編程性強 :FPGA具有高度的可編程性,可以靈活
    的頭像 發(fā)表于 10-25 09:24 ?1587次閱讀

    雪崩晶體管有哪些優(yōu)缺點

    雪崩晶體管作為一種特殊的半導體器件,在電子領域具有其獨特的優(yōu)缺點
    的頭像 發(fā)表于 09-23 18:05 ?662次閱讀

    運放恒流源有哪些優(yōu)缺點

    運放恒流源,即利用運算放大器(Operational Amplifier,簡稱運放)構成的恒流源電路,具有一系列獨特的優(yōu)點和缺點。以下是對其優(yōu)缺點的詳細分析。
    的頭像 發(fā)表于 08-28 10:18 ?2040次閱讀

    GaN HEMT有哪些優(yōu)缺點

    GaN HEMT(氮化鎵高電子遷移率晶體管)作為一種先進的功率半導體器件,在電力電子、高頻通信、汽車電子等多個領域展現出了顯著的優(yōu)勢,但同時也存在一些缺點。以下是對GaN HEMT優(yōu)缺點的詳細分析:
    的頭像 發(fā)表于 08-15 11:09 ?2758次閱讀

    AI大模型與小模型的優(yōu)缺點

    在人工智能(AI)的廣闊領域中,模型作為算法與數據之間的橋梁,扮演著至關重要的角色。根據模型的大小和復雜度,我們可以將其大致分為AI大模型和小模型。這兩種模型在定義、優(yōu)缺點及應用場景上存在著顯著的差異。本文將從多個維度深入探討AI大模型與小模型的特點,并分析其各自的優(yōu)缺點
    的頭像 發(fā)表于 07-10 10:39 ?7100次閱讀

    同步整流的優(yōu)缺點有哪些

    同步整流是一種在數字電路設計中常用的技術,它通過將電路中的所有信號同步到一個共同的時鐘信號上,來實現信號之間的同步。這種技術在數字電路設計中具有重要的作用,但同時也存在一些優(yōu)缺點。以下是對同步整流
    的頭像 發(fā)表于 07-09 09:09 ?1998次閱讀

    通道數據采集系統的優(yōu)缺點

    通道數據采集系統是一種廣泛應用于工業(yè)、科研、醫(yī)療等領域的技術,它能夠同時采集多個通道的信號,實現對多種物理量的實時監(jiān)測和分析。本文將詳細介紹通道數據采集系統的優(yōu)缺點,以及其在不同領域的應用情
    的頭像 發(fā)表于 07-01 15:58 ?2664次閱讀
    主站蜘蛛池模板: 成年视频在线观看 | 国产大片黄在线看免费 | 乱人伦精品一区二区 | 夜夜澡人人爽人人喊_欧美 夜夜综合网 | 国产一级做a爱免费视频 | 黄视频网站在线看 | 日本免费一区二区三区视频 | 欧美性猛交xxxx免费 | 成熟女性毛茸茸xx免费视频 | 女人张开腿让男人做爽爽 | 四虎在线观看免费永久 | 国产美女视频免费 | 九九热视频免费在线观看 | 婷婷久久精品 | 久久国产中文字幕 | 久久亚洲国产成人精品性色 | 欧洲妇女成人淫片aaa视频 | 美女黄网站人色视频免费国产 | 国产美女亚洲精品久久久久久 | 国产性做久久久久久 | 国产亚洲精品aa在线看 | 成 人 黄 色视频免费播放 | 天天久久| 99热官网 | 丰满年轻岳欲乱中文字幕 | 日韩三级免费 | 国产免费福利网站 | 日本一视频一区视频二区 | 欧美午夜精品久久久久久黑人 | 成人性欧美丨区二区三区 | a成人在线 | 在线视频一二三区 | 久久美女精品 | 久久国产高清字幕中文 | 欧美videosex性欧美成人 | 中文字幕日本一区波多野不卡 | 亚洲人成伊人成综合网久久 | 日韩欧美高清一区 | 起碰成人免费公开网视频 | bt天堂网在线 | 色宅男看片午夜大片免费看 |