色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

測試和運維的挑戰

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 作者:馬哥Linux運維 ? 2022-10-09 11:00 ? 次閱讀

前言

后臺服務可以劃分為兩類,有狀態和無狀態。高可用對于無狀態的應用來說是比較簡單的,無狀態的應用,只需要通過 F5 或者任何代理的方式就可以很好的解決。后文描述的主要是針對有狀態的服務進行分析。 服務端進行狀態維護主要是通過磁盤或內存進行保存,比如 MySQL 數據庫,redis 等內存數據庫。除了這兩種類型的維護方式,還有 jvm 的內存的狀態維持,但jvm的狀態生命周期通常很短。

高可用

1、高可用的一些解決方案

高可用,從發展來看,大致經過了這幾個過程:

冷備

雙機熱備

同城雙活

異地雙活

異地多活

在聊異地多活的時候,還是先看一些其他的方案,這有利于我們理解很多設計的緣由。

冷備

冷備,通過停止數據庫對外服務的能力,通過文件拷貝的方式將數據快速進行備份歸檔的操作方式。簡而言之,冷備,就是復制粘貼,在 linux 上通過 cp 命令就可以很快完成。可以通過人為操作,或者定時腳本進行。有如下好處:

簡單

快速備份(相對于其他備份方式)

快速恢復。只需要將備份文件拷貝回工作目錄即完成恢復過程(亦或者修改數據庫的配置,直接將備份的目錄修改為數據庫工作目錄)。更甚,通過兩次mv命令就可瞬間完成恢復。

可以按照時間點恢復。比如,幾天前發生的拼多多優惠券漏洞被人刷掉很多錢,可以根據前一個時間點進行還原,“挽回損失”。

以上的好處,對于以前的軟件來說,是很好的方式。但是對于現如今的很多場景,已經不好用了,因為:

服務需要停機。n個9肯定無法做到了。然后,以前我們的停機冷備是在凌晨沒有人使用的時候進行,但是現在很多的互聯網應用已經是面向全球了,所以,任何時候都是有人在使用的。

數據丟失。如果不采取措施,那么在完成了數據恢復后,備份時間點到還原時間內的數據會丟失。傳統的做法,是冷備還原以后,通過數據庫日志手動恢復數據。比如通過 redo日志,更甚者,我還曾經通過業務日志去手動回放請求恢復數據。恢復是極大的體力活,錯誤率高,恢復時間長。

冷備是全量備份。全量備份會造成磁盤空間浪費,以及容量不足的問題,只能通過將備份拷貝到其他移動設備上解決。所以,整個備份過程的時間其實更長了。

想象一下每天拷貝幾個T的數據到移動硬盤上,需要多少移動硬盤和時間。并且,全量備份是無法定制化的,比如只備份某一些表,是無法做到的。

如何權衡冷備的利弊,是每個業務需要考慮的。

雙機熱備

熱備,和冷備比起來,主要的差別是不用停機,一邊備份一邊提供服務。但還原的時候還是需要停機的。由于我們討論的是和存儲相關的,所以不將共享磁盤的方式看作雙機熱備。

Active/Standby模式

相當于1主1從,主節點對外提供服務,從節點作為backup。通過一些手段將數據從主節點同步到從節點,當故障發生時,將從節點設置為工作節點。數據同步的方式可以是偏軟件層面,也可以是偏硬件層面的。偏軟件層面的,比如mysql的master/slave方式,通過同步binlog的方式;sqlserver的訂閱復制方式。偏硬件層面,通過扇區和磁盤的攔截等鏡像技術,將數據拷貝到另外的磁盤。偏硬件的方式,也被叫做數據級災備;偏軟件的,被叫做應用級災備。后文談得更多的是應用級災備。

雙機互備

本質上還是Active/Standby,只是互為主從而已。雙機互備并不能工作于同一個業務,只是在服務器角度來看,更好的壓榨了可用的資源。比如,兩個業務分別有庫A和B,通過兩個機器P和Q進行部署。那么對于A業務,P主Q從,對于B業務,Q主P從。整體上看起來是兩個機器互為主備。這種架構下,讀寫分離是很好的,單寫多讀,減少沖突又提高了效率。

其他的高可用方案還可以參考各類數據庫的多種部署模式,比如mysql的主從、雙主多從、MHA;redis 的主從,哨兵,cluster 等等。

同城雙活

前面講到的幾種方案,基本都是在一個局域網內進行的。業務發展到后面,有了同城多活的方案。和前面比起來,不信任的粒度從機器轉為了機房。這種方案可以解決某個IDC機房整體掛掉的情況(停電,斷網等)。

同城雙活其實和前文提到的雙機熱備沒有本質的區別,只是“距離”更遠了,基本上還是一樣(同城專線網速還是很快的)。雙機熱備提供了災備能力,雙機互備避免了過多的資源浪費。

程序代碼的輔助下,有的業務還可以做到真正的雙活,即同一個業務,雙主,同時提供讀寫,只要處理好沖突的問題即可。需要注意的是,并不是所有的業務都能做到。

業界更多采用的是兩地三中心的做法。遠端的備份機房能更大的提供災備能力,能更好的抵抗地震,恐襲等情況。雙活的機器必須部署到同城,距離更遠的城市作為災備機房。災備機房是不對外提供服務的,只作為備份使用,發生故障了才切流量到災備機房;或者是只作為數據備份。原因主要在于:距離太遠,網絡延遲太大。

f2c30776-40c9-11ed-96c9-dac502259ad0.png 圖1 兩地三中心

如上圖,用戶流量通過負載均衡,將服務A的流量發送到IDC1,服務器集A;將服務B的流量發送到IDC2,服務器B;同時,服務器集a和b分別從A和B進行同城專線的數據同步,并且通過長距離的異地專線往IDC3進行同步。當任何一個IDC當機時,將所有流量切到同城的另一個IDC機房,完成了failover。

當城市1發生大面積故障時,比如發生地震導致IDC1和2同時停止工作,則數據在IDC3得以保全。同時,如果負載均衡仍然有效,也可以將流量全部轉發到IDC3中。不過,此時IDC3機房的距離非常遠,網絡延遲變得很嚴重,通常用戶的體驗的會受到嚴重影響的。

f2d218ba-40c9-11ed-96c9-dac502259ad0.png 圖2 兩地三中心主從模式 上圖是一種基于Master-Slave模式的兩地三中心示意圖。城市1中的兩個機房作為1主1從,異地機房作為從。也可以采用同城雙主+keepalived+vip的方式,或者MHA的方式進行failover。但城市2不能(最好不要)被選擇為Master。

3、異地雙活

同城雙活可以應對大部分的災備情況,但是碰到大面積停電,或者自然災害的時候,服務依然會中斷。對上面的兩地三中心進行改造,在異地也部署前端入口節點和應用,在城市1停止服務后將流量切到城市2,可以在降低用戶體驗的情況下,進行降級。但用戶的體驗下降程度非常大。 所以大多數的互聯網公司采用了異地雙活的方案。 f2e08a6c-40c9-11ed-96c9-dac502259ad0.png 圖3 簡單的異地雙活示意圖 上圖是一個簡單的異地雙活的示意圖。流量經過LB后分發到兩個城市的服務器集群中,服務器集群只連接本地的數據庫集群,只有當本地的所有數據庫集群均不能訪問,才failover到異地的數據庫集群中。 在這種方式下,由于異地網絡問題,雙向同步需要花費更多的時間。更長的同步時間將會導致更加嚴重的吞吐量下降,或者出現數據沖突的情況。吞吐量和沖突是兩個對立的問題,你需要在其中進行權衡。例如,為了解決沖突,引入分布式鎖/分布式事務;為了解決達到更高的吞吐量,利用中間狀態、錯誤重試等手段,達到最終一致性;降低沖突,將數據進行恰當的sharding,盡可能在一個節點中完成整個事務。 對于一些無法接受最終一致性的業務,餓了么采用的是下圖的方式: f2fce23e-40c9-11ed-96c9-dac502259ad0.jpg

對于個別一致性要求很高的應用,我們提供了一種強一致的方案(Global Zone),Globa Zone是一種跨機房的讀寫分離機制,所有的寫操作被定向到一個 Master 機房進行,以保證一致性,讀操作可以在每個機房的 Slave庫執行,也可以 bind 到 Master 機房進行,這一切都基于我們的數據庫訪問層(DAL)完成,業務基本無感知。 ——《餓了么異地多活技術實現(一)總體介紹》

也就是說,在這個區域是不能進行雙活的。采用主從而不是雙寫,自然解決了沖突的問題。 實際上,異地雙活和異地多活已經很像了,雙活的結構更為簡單,所以在程序架構上不用做過多的考慮,只需要做傳統的限流,failover等操作即可。但其實雙活只是一個臨時的步驟,最終的目的是切換到多活。因為雙活除了有數據沖突上的問題意外,還無法進行橫向擴展。

異地多活

f30f1846-40c9-11ed-96c9-dac502259ad0.png 圖4 異地多活的示意圖 根據異地雙活的思路,我們可以畫出異地多活的一種示意圖。每個節點的出度和入度都是4,在這種情況下,任何節點下線都不會對業務有影響。但是,考慮到距離的問題,一次寫操作將帶來更大的時間開銷。時間開銷除了影響用戶體驗以外,還帶來了更多的數據沖突。在嚴重的數據沖突下,使用分布式鎖的代價也更大。這將導致系統的復雜度上升,吞吐量下降。所以上圖的方案是無法使用的。 回憶一下我們在解決網狀網絡拓撲的時候是怎么優化的?引入中間節點,將網狀改為星狀: f335af1a-40c9-11ed-96c9-dac502259ad0.png 圖5 星狀的異地多活 改造為上圖后,每個城市下線都不會對數據造成影響。對于原有請求城市的流量,會被重新 LoadBalance 到新的節點(最好是LB到最近的城市)。為了解決數據安全的問題,我們只需要針對中心節點進行處理即可。但是這樣,對于中心城市的要求,比其他城市會更高。比如恢復速度,備份完整性等,這里暫時不展開。我們先假定中心是完全安全的。 如果我們已經將異地多活的業務部署為上圖的結構,很大程度解決了數據到處同步的問題,不過依然會存在大量的沖突,沖突的情況可以簡單認為和雙活差不多。那么還有沒有更好的方式呢? 這里可以關聯一下餓了么的 GlobalZone 方案,總體思路就是“去分布式”,也就是說將寫的業務放到一個節點的(同城)機器上。阿里是這么思考的: f346b99a-40c9-11ed-96c9-dac502259ad0.jpg 阿里理想中的異地多活架構 實際上我猜測很多業務也是按照上圖去實現的,比如滴滴打車業務這種,所有的業務都是按城市劃分開的。用戶、車主、目的地,他們的經緯度通常都是在同一個城市的。單個數據中心并不需要和其他數據中心進行數據交互,只有在統計出報表的時候才需要,但報表是不太注重實時性的。那么,在這種情況下,全國的業務其實可以被很好的sharding的。 但是對于電商這種復雜的場景和業務,按照前文說的方式進行sharding已經無法滿足需求了。因為業務線非常復雜,數據依賴也非常復雜,每個數據中心相互進行數據同步的情況無可避免。淘寶的解決方式和我們切分微服務的方式有點類似: f354c1f2-40c9-11ed-96c9-dac502259ad0.jpg 淘寶按照單元切分的異地多活架構 注意看圖中的數據同步箭頭。以交易單元為例,屬于交易單元的業務數據,將與中心單元進行雙向同步;不屬于交易單元的業務數據,單向從中心單元同步。中心單元承擔了最復雜的業務場景,業務單元承擔了相對單一的場景。對于業務單元,可以進行彈性伸縮和容災;對于中心單元,擴展能力較差,穩定性要求更高。可以遇見,大部分的故障都會出現在中心單元。 按照業務進行單元切分,已經需要對代碼和架構進行徹底的改造了(可能這也是為什么阿里要先從雙活再切到多活,歷時3年)。比如,業務拆分,依賴拆分,網狀改星狀,分布式事務,緩存失效等。除了對于編碼的要求很高以外,對測試和運維也有非常大的挑戰。 如此復雜的情況,如何進行自動化覆蓋,如何進行演練,如何改造流水線。這種級別的災備,不是一般公司敢做的,投入產出也不成正比。不過還是可以把這種場景當作我們的“假想敵”,去思考我們自己的業務,未來會怎么發展,需要做到什么級別的災備。相對而言,餓了么的多活方案可能更適合大多數的企業。 本文只是通過畫圖的方式進行了簡單的描述,其實異地多活是需要很多很強大的基礎能力的。比如,數據傳輸,數據校驗,數據操作層(簡化客戶端控制寫和同步的過程)等。

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

    關注

    8

    文章

    7067

    瀏覽量

    89108
  • Linux
    +關注

    關注

    87

    文章

    11312

    瀏覽量

    209699
  • 編碼
    +關注

    關注

    6

    文章

    945

    瀏覽量

    54850

原文標題:運維思考:一文聊聊高可用的“異地多活”架構設計

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    學習Linux發展方向

    及丟失等)、對網站的故障進行監控、解決網站運行的潛在安全問題、開發自動化腳本程序提高工作效率、規劃網站架構、程序發布流程和規范,制定工作制度和規范、配合開發人員部署并調試產品研發需要的測試環境、代碼
    發表于 07-25 17:15

    虛擬化故障怎么辦?虛擬化怎么解決?

    著信息的傳輸,他們就是---數據中心團隊。疫情的時候,為減少疾病傳染可能性,許多公司的選擇了在家遠程辦公。對于來說,既要遠程
    發表于 02-21 21:32

    何為智能

    一、何為智能?生產設備/裝備是工業的重要生產工具,其可靠性、性能對工業生產有重大影響。隨著工業大數據推進,設備的智能被定義為一個重要的應用領域。但何為智能
    發表于 07-12 06:34

    什么是標準化和流程化呢?工作梳理

    的標準化和流程化首先要以文檔的形式進行展示,并且能夠指導日常工作。國有國法,家有家規,冰箱洗衣機都有說明書,
    的頭像 發表于 05-01 17:31 ?1.7w次閱讀
    什么是<b class='flag-5'>運</b><b class='flag-5'>維</b>標準化和流程化呢?<b class='flag-5'>運</b><b class='flag-5'>維</b>工作梳理

    中興通訊UniSeer智能網絡方案,提供能力開放的智能平臺

    近日,中興通訊發布《UniSeer智能網絡白皮書》,結合電信的發展趨勢,全面闡述了基于中臺技術構建智能
    發表于 11-24 12:04 ?1456次閱讀

    智慧電力平臺(智慧電力管理系統)

    云計算、物聯網、大數據技術、無線通信技術的發展,讓傳統的專職模式過渡到線上值守與線下相結合的平臺模式成為可能,通過智慧電力
    的頭像 發表于 08-16 10:21 ?1873次閱讀
    智慧電力<b class='flag-5'>運</b><b class='flag-5'>維</b>平臺(智慧電力<b class='flag-5'>運</b><b class='flag-5'>維</b>管理系統)

    分布式管理平臺助力銀行系統安全的案例研究

    一、案例背景 隨著銀行業務的快速發展和數字化轉型的推進,銀行系統面臨著越來越復雜的挑戰。傳統的方式已難以滿足銀行業務的需求,特別是在
    的頭像 發表于 03-26 16:04 ?506次閱讀

    分布式管理平臺在跨地域企業中的部署與案例

    一、案例背景 隨著全球化進程的加速和市場競爭的加劇,越來越多的企業開始拓展跨地域業務,形成多分支機構、多數據中心的運營模式。然而,這種跨地域運營模式也給企業的管理帶來了極大的挑戰。為了解決這些
    的頭像 發表于 03-26 16:11 ?482次閱讀

    智能化維新標桿:訊管理平臺深度解讀

    在信息化、數字化快速發展的今天,企業對于管理的需求日益增強。傳統的方式已經無法滿足復雜多變的業務需求,智能化
    的頭像 發表于 04-16 16:24 ?517次閱讀

    管理平臺:從基礎到智能的飛躍

    管理平臺為企業提供了從基礎到智能的飛
    的頭像 發表于 04-16 16:26 ?447次閱讀

    光伏電站管理系統實現光伏智能化管理

    的穩定性主要通過來保證。光伏電站作為一個復雜而龐大的系統,其維和管理工作都面臨著一系列挑戰。 ?????? 光伏電站
    的頭像 發表于 07-23 16:50 ?703次閱讀
    光伏電站<b class='flag-5'>運</b><b class='flag-5'>維</b>管理系統實現光伏智能化<b class='flag-5'>運</b><b class='flag-5'>維</b>管理

    光伏電站維系統解決傳統光伏電站痛點

    光伏電站維系統解決傳統光伏電站痛點 隨著光伏電站的日益普及,光伏成為保障光伏電站安全、高效運行的重要手段,但是傳統的
    的頭像 發表于 08-09 16:16 ?564次閱讀
    光伏電站<b class='flag-5'>運</b>維系統解決傳統光伏電站<b class='flag-5'>運</b><b class='flag-5'>維</b>痛點

    光伏電站管理系統實現電站智能與管理

    光伏電站管理系統實現電站智能與管理 光伏電站作為潛力巨大的新能源發電方式之一正在迅速發展。然而光伏電站的維和管理過程中面臨著諸多
    的頭像 發表于 08-16 16:48 ?553次閱讀
    光伏電站<b class='flag-5'>運</b><b class='flag-5'>維</b>管理系統實現電站智能<b class='flag-5'>運</b><b class='flag-5'>維</b>與管理

    光伏電站管理系統與傳統模式對比分析

    ?????? 光伏電站管理系統與傳統模式對比分析 ?????? 隨著全球對可再生能源的關注度不斷提升,光伏電站作為綠色能源的重要組成部分,其
    的頭像 發表于 11-08 16:14 ?276次閱讀
    光伏電站<b class='flag-5'>運</b><b class='flag-5'>維</b>管理系統與傳統<b class='flag-5'>運</b><b class='flag-5'>維</b>模式對比分析

    工業物聯網平臺在設備遠程中的應用

    一、設備遠程的需求與挑戰 傳統的設備模式依賴于
    的頭像 發表于 11-27 16:13 ?185次閱讀
    工業物聯網平臺在設備遠程<b class='flag-5'>運</b><b class='flag-5'>維</b>中的應用
    主站蜘蛛池模板: 久久精品观看| 俄罗斯性xxxx| 18黄女脱内衣| 工口肉肉彩色不遮挡| 看80后操| 午夜天堂AV久久久噜噜噜| 99久久精品国产自免费| 九九大香尹人视频免费| 午夜射精日本三级| 国产在线精品一区二区网站免费| 色屁屁影院| 99热最新网站| 美女pk精子2小游戏| 野花日本完整版在线观看免费高清 | 久久人妻少妇嫩草AV无码| 亚洲成年男人的天堂网| 国产激情视频在线| 色婷婷狠狠97成为人免费| 国产毛片A级久久久不卡精品| 少妇内射视频播放舔大片| 国产亚洲欧美高清在线| 最近最新中文字幕MV高清在线| 久久偷拍免费2017| 扒开女人下面使劲桶视频| 人禽l交视频在线播放 视频| X8X8拨牐拨牐X8免费视频8午夜| 牛和人交videos欧美| a级成人免费毛片完整版| 色婷婷欧美在线播放内射| 久久www免费人成_看片高清| YELLOW免费观看2019| 亚洲黄色在线视频| 久久精品熟一区二区三区| 最新日本免费一区| 无码人妻丰满熟妇啪啪网不卡| 国产女合集小岁9三部| 中文字幕 人妻熟女| 欧美zzzoooxxx| 国产99视频精品免费播放| 一区二区三区无码被窝影院| 免费看欧美xxx片|