成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

多機房多活架構,究竟怎么玩?

開發 開發工具 架構
如前文所述,如果將單機房“全連接”架構復制到多機房,會有大量跨機房調用,極大增加請求時延,是業務無法接受的,要想降低這個時延,必須實施“同機房連接”。

前情提要:

當年,我們是怎么平滑上云的?》一文中提到了上云的背景,將所有的系統,從一個機房,遷移到另一個機房。

如上圖:

  • 遷移之前,系統部署在機房A(M6)內,是單機房架構。
  • 遷移之后,系統部署在機房B(阿里云)內,換了一個機房。

當年,我們是怎么平滑上云的?》有三結論:

  • 單機房架構的核心是“全連接”;
  • 機房遷移方案的設計目標是:平滑遷移,不停服務;可以分批遷移;隨時可以回滾;
  • 想要平滑的實施機房遷移,臨時性的多機房架構不可避免;

【4】核心問題四,臨時性多機房架構如何實施?

如前文所述,如果將單機房“全連接”架構復制到多機房,會有大量跨機房調用,極大增加請求時延,是業務無法接受的,要想降低這個時延,必須實施“同機房連接”。

多機房多活架構,什么是理想狀態下的“同機房連接”?

如上圖所示,多機房多活架構,最理想狀態下,除了異步數據同步跨機房通訊,其他所有通訊均為“同機房連接”:

  • web連業務服務;
  • 業務服務連基礎服務;
  • 服務連數據庫,主庫寫,從庫讀,讀寫分離;

上述架構,每個機房是一套獨立的系統,僅僅通過異步數據同步獲取全量數據,當發生機房故障時,將流量切到另一個機房,就能冗余“機房級”故障,實現高可用。

上述多機房架構存在什么問題?

“異步數據同步”存在延時(例如:1min),這個延時的存在,會使得兩個機房的數據不一致,從而導致嚴重的業務問題。

舉個例子,某一個時刻,用戶X有余額100元,兩個機房都存儲有該余額的精準數據,接下來:

  • 余額100,X在北京(就近訪問機房A)消費了80元,余額僅剩20元,該數據在1分鐘后會同步到機房B;
  • 余額100,X的夫人在廣州(就近訪問機房B)用X的賬號消費了70元,余額剩余30元,該數據在1分鐘后也會同步到機房A;

從而導致:

  • 超額消費(100余額,卻買了150的東西);
  • 余額異常(余額是20,還是30?);

上述架構適合于什么業務場景?

任何脫離業務的架構設計都是耍流氓。

當每個機房都有很多全局業務數據的訪問場景時,上述多機房架構并不適用,會存在大量數據不一致。但當每個機房都訪問局部業務數據時,上述多機房架構仍然是可行的。

典型的業務:滴滴,快狗打車。

這些業務具備數據聚集效應:

  • 下單用戶在同一個城市;
  • 接單司機在同一個城市;
  • 交易訂單在同一個城市;

這類業務非常適合上述多機房多活架構,多個機房之間即使存在1分鐘延時的“異步數據同步”,對業務也不會造成太大的影響。

多機房多活架構,做不到理想狀態下的“同機房連接”,有沒有折中方案?

如果完全避免跨機房調用的理想狀態做不到,就盡量做到“最小化”跨機房調用。

如上圖所示,在非必須的情況下,優先連接同機房的站點與服務:

  • 站點層只連接同機房的業務服務層;
  • 業務服務層只連接同機房的基礎服務層;
  • 服務層只連接同機房的“讀”庫;
  • 對于寫庫,沒辦法,只有跨機房讀“寫”庫了;

該方案沒有完全避免跨機房調用,但它做到了“最小化”跨機房調用,只有寫請求是跨機房的。

但互聯網的業務,絕大部分是讀多寫少的業務:

  • 百度的搜索100%是讀業務;
  • 京東淘寶電商99%的瀏覽搜索是讀業務,只有下單支付是寫業務;
  • 58同城99%帖子的列表詳情查看是讀業務,只有發布帖子是寫業務;

寫業務比例相對少,只有很少請求會跨機房調用。

該多機房多活架構,并沒有做到100%的“同機房連接”,通常稱作偽多機房多活架構。

偽多機房多活架構,有“主機房”和“從機房”的差別。

多機房多活架構的初衷是容機房故障,該架構當出現機房故障時,可以把入口處流量切到另一個機房:

  • 如果掛掉的是,不包含主庫的從機房,遷移流量后能直接容錯;
  • 如果掛掉的是,包含主庫的主機房,只遷移流量,系統整體99%的讀請求可以容錯,但1%的寫請求會受到影響,此時需要將從庫變為主庫,才能完全容錯。這個過程需要DBA介入,不需要所有業務線上游修改。

畫外音:除非,站點和服務使用內網IP,而不是內網域名連接數據庫。架構師之路已經強調過很多次,不要使用內網IP,一定要使用內網域名。

偽多機房多活架構,是一個實踐性,落地性很強的架構,它對原有架構體系的沖擊非常小,和單機房架構相比,僅僅是:

  • 跨機房主從同步數據,會多10毫秒延時;畫外音:主從同步數據,本來就會有延時。
  • 跨機房寫,會多10毫秒延時;

小結:

  • 理想多機房多活架構,是純粹的“同機房連接”,僅有異步數據同步會跨機房;
  • 理想多機房多活架構,會有較嚴重數據一致性問題,僅適用于具備數據聚集效應的業務場景,例如:滴滴,快狗打車;
  • 偽多機房多活架構,思路是“最小化跨機房連接”,機房區分主次,落地性強,對原有架構沖擊較小,強烈推薦;

臨時性多機房多活架構,是機房遷移過程中的一個過渡狀態,機房遷移步驟又該如何?且聽明天分解。

思路比結論重要。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2022-04-08 07:52:00

架構多機房多活

2024-08-12 08:04:00

2024-10-15 11:04:18

2022-07-05 15:08:52

機房架構

2018-04-02 09:33:03

多活技術架構運維

2023-11-28 07:45:48

Rust自動化測試

2020-11-20 09:23:01

高可用異地淘寶

2022-02-18 11:05:25

Jpa配置Address

2018-06-26 15:58:39

進程內緩存緩存數據

2024-04-26 00:28:14

異地多活架構

2019-03-18 10:32:33

容災雙活同城

2021-02-04 10:00:09

異地多中心容災

2022-07-11 10:08:34

大數據平臺機房

2024-07-15 08:02:20

2022-09-21 11:44:47

多機房部署數據庫服務

2022-08-16 15:20:12

微服務IT運維

2023-04-17 07:34:17

電商平臺ChatGPT表格

2025-01-22 12:54:56

2015-05-06 13:39:15

Windows系統復雜

2011-07-12 10:01:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区在线观看视频 | 久久精品伊人 | 九九热免费视频在线观看 | 自拍偷拍在线视频 | 成人不卡视频 | av中文字幕在线观看 | 亚洲www啪成人一区二区 | 亚州精品天堂中文字幕 | 中文字幕爱爱视频 | 久久久国产精品网站 | 一二三区视频 | 精品在线免费看 | 国产免费一级一级 | 欧美中文一区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | a级大片 | 精品国产乱码久久久久久蜜柚 | 超碰天天 | 欧美黑人一级爽快片淫片高清 | 国产欧美精品一区二区三区 | 欧美日韩亚洲国产 | 日本精品久久久一区二区三区 | 成人h视频在线观看 | 欧美日韩综合视频 | 在线免费观看视频你懂的 | 国产精品黄色 | 日韩电影免费观看中文字幕 | 一区二区三区日本 | 男人的天堂avav | 国产毛片久久久 | 欧美福利久久 | 97精品视频在线 | 91成人在线| 中文字幕久久精品 | 日本成人区 | 亚洲精品久久久久久一区二区 | 观看av| 久久国产一区二区 | 北条麻妃av一区二区三区 | 国产精品九九九 | 91亚洲国产成人久久精品网站 |