国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

業界常用的多活手段及各方案優缺點

454398 ? 來源: Chinaunix ? 作者:vivo互聯網技術 ? 2020-10-10 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

一、為什么要做多活

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

1、多活場景

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

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

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

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

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

2、多活方案

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

二、同城雙活

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

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

1、服務路由

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

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

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

2、數據雙活

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

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

3、同城雙活方案評估

優勢

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

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

劣勢

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

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

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

三、兩地三中心架構

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

業界常用的多活手段及各方案優缺點

兩地三中心方案評估

優勢

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

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

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

劣勢

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

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

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

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

四、異地多活

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

1、異地多活挑戰

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

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

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

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

2、單元化

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

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

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

3、非單元化應用和數據

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

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

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

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

4、請求路由

(1)Api入口網關

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

業界常用的多活手段及各方案優缺點

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

(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注冊中心路由尋址過程,和同城雙活有一定的差異性。

業界常用的多活手段及各方案優缺點

5、數據同步

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

業界常用的多活手段及各方案優缺點

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

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

6、方案評估

優勢

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

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

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

劣勢

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

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

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

五、總結

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

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

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

    關注

    14

    文章

    10251

    瀏覽量

    91480
  • 移動互聯網
    +關注

    關注

    5

    文章

    600

    瀏覽量

    35160
  • 系統架構
    +關注

    關注

    1

    文章

    73

    瀏覽量

    24218
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    對比分析電能質量在線監測裝置支持的斷點續傳文件傳輸協議的優缺點

    優缺點對比分析: 一、各協議優缺點逐一拆解 1. FTP(文件傳輸協議) 優點 斷點續傳機制成熟 :依托REST命令可精準定位字節偏移量,支持大文件分塊續傳,且內置 CRC 校驗保障數據完整性,是裝置的基礎標配功能,適配性強。 傳輸效率高 :無加密運算損耗,傳輸速率
    的頭像 發表于 12-05 17:49 ?3403次閱讀
    對比分析電能質量在線監測裝置支持的斷點續傳文件傳輸協議的<b class='flag-5'>優缺點</b>

    UV三防漆的優缺點大起底!是效率神器還是局限陷阱?

    ?UV三防漆以其“秒干”的黑科技聞名于電子制造圈,但它真的是完美無缺的嗎?任何材料的選擇都是一場權衡。本文將徹底剖析UV三防漆的優缺點,幫助您精準判斷:它究竟是提升您生產效率的利器,還是可能帶來麻煩的“嬌氣”選手?
    的頭像 發表于 11-15 17:22 ?474次閱讀
    UV三防漆的<b class='flag-5'>優缺點</b>大起底!是效率神器還是局限陷阱?

    工業級SLC SD NAND存儲的優缺點

    工業級 SLC?存儲卡與存儲芯片的優缺點: ? 核心特點與適用場景 ? ? 可靠性與壽命 ?:SLC(單層單元)每單元僅存1 bit,典型P/E?擦寫壽命約 10?萬次,遠高于 MLC/TLC,適合
    的頭像 發表于 10-17 11:09 ?750次閱讀
    工業級SLC SD NAND存儲的<b class='flag-5'>優缺點</b>

    無壓燒結銀膏應該怎樣脫泡,手段有哪些?

    的關鍵工序。 以下是目前業界和研究中常用的無壓燒結銀膏脫泡手段,可以分為三大類: 一、 膏體混合與制備階段的脫泡 這是在銀膏使用前,對膏體本身進行的預處理。 離心脫泡 原理:利用高速旋轉產生的離心力
    發表于 10-04 21:11

    正確的連接電機傳動軸的幾種常見連接方式及其優缺點

    方式及其優缺點分析。 1. 聯軸器連接 ? 聯軸器是電機與傳動軸之間最常用的連接方式之一,其核心功能是傳遞扭矩并補償兩軸之間的偏差(如徑向、軸向或角向偏差)。根據結構不同,聯軸器可分為以下幾類: ? (1)剛性聯軸器 ?
    的頭像 發表于 09-10 07:41 ?3186次閱讀

    無線局域網的優缺點和使用要點

    近年來,無線局域網 已普遍應用于我們生活的方方面面。本文將介紹無線局域網的基礎知識、優缺點、與 Wi-Fi 及有線局域網的區別,以及有效使用的要點。全球領先的短距離無線模塊供應商 KAGA FEI
    的頭像 發表于 08-14 16:04 ?2964次閱讀
    無線局域網的<b class='flag-5'>優缺點</b>和使用要點

    超級電容對比鋰電池的優缺點

    本文探討了超級電容和鋰電池在儲能領域的優缺點。超級電容以高能量密度著稱,但充電速度較慢;鋰電池則具有快充和壽命長的優勢,但成本較高。在新能源汽車和電網調頻等高頻次應用中,兩者可以互補。
    的頭像 發表于 06-30 09:37 ?2636次閱讀
    超級電容對比鋰電池的<b class='flag-5'>優缺點</b>

    商業云手機核心優缺點分析

    商業云手機核心優缺點分析,綜合技術性能、成本效率及場景適配性等多維度對比: 核心優勢? 成本革命? 硬件零投入?:免除實體手機采購(旗艦機均價6000元),企業百臺規??墒?0萬+ CAPEX
    的頭像 發表于 06-16 08:11 ?1033次閱讀
    商業云手機核心<b class='flag-5'>優缺點</b>分析

    PCBA 表面處理:優缺點大揭秘,應用場景全解析

    一站式PCBA加工廠家今天為大家講講PCBA加工如何選擇合適的表面處理工藝?PCBA表面處理優缺點與應用場景。在電子制造中,PCBA板的表面處理工藝對電路板的性能、可靠性和成本都有重要影響。選擇合適
    的頭像 發表于 05-05 09:39 ?1398次閱讀
    PCBA 表面處理:<b class='flag-5'>優缺點</b>大揭秘,應用場景全解析

    3D打印耗材種類有哪些?各有什么優缺點?

    這篇文章將為你詳細介紹3D打印耗材的基礎知識,幫助你了解這些材料的特性、優缺點以及它們適合的應用場景。
    的頭像 發表于 04-29 09:40 ?5.3w次閱讀
    3D打印耗材種類有哪些?各有什么<b class='flag-5'>優缺點</b>?

    傳感器的模擬輸出和數字輸出的優缺點分析

    在現代自動化控制和監測系統中,傳感器的輸出方式主要分為模擬輸出和數字輸出兩種,它們各自具有獨特的優缺點,在不同的應用場景中有著不同的適用性。深入了解這兩種輸出方式的特點,對于正確選擇和使用傳感器
    的頭像 發表于 04-17 18:28 ?1400次閱讀
    傳感器的模擬輸出和數字輸出的<b class='flag-5'>優缺點</b>分析

    CMOS,Bipolar,FET這三種工藝的優缺點是什么?

    在我用photodiode工具選型I/V放大電路的時候,系統給我推薦了AD8655用于I/V,此芯片為CMOS工藝 但是查閱資料很多都是用FET工藝的芯片,所以請教下用于光電信號放大轉換(主要考慮信噪比和帶寬)一般我們用哪種工藝的芯片, CMOS,Bipolar,FET這三種工藝的優缺點是什么?
    發表于 03-25 06:23

    壓接連接器使用裸銅線的優缺點分析?

    壓接連接器使用裸銅線是一種高效、可靠的電氣連接方式,廣泛應用于電力、通信和工業領域。需要我們正確看待它的優缺點,高效使用。
    的頭像 發表于 03-18 11:01 ?1156次閱讀

    液壓伺服系統工作原理液及優缺點

    液壓伺服系統是一種通過調節液壓元件的流量和壓力來實現對負載的位置、速度和力的精確控制的系統。以下是對其工作原理及優缺點的詳細分析: 一、工作原理 液壓伺服系統的工作原理主要分為兩個階段:感應階段
    的頭像 發表于 03-16 16:43 ?1612次閱讀
    液壓伺服系統工作原理液及<b class='flag-5'>優缺點</b>

    淺談汽車系統電壓優缺點分析

    以下是12V、24V、48V系統的簡單介紹,包括技術特點、優缺點及典型應用場景。汽車電氣系統的發展隨著車輛電子設備的增多和對能效要求的提高,電壓等級也在逐步提升,從傳統的12V電
    的頭像 發表于 03-06 08:04 ?1791次閱讀
    淺談汽車系統電壓<b class='flag-5'>優缺點</b>分析