GaussDB(DWS) 業務高可靠的三大利器:CN RETRY、遠程讀、ELB

来源:https://www.cnblogs.com/huaweiyun/p/18093728
-Advertisement-
Play Games

本文分享自華為雲社區《GaussDB(DWS)業務高可靠原理》,作者: yd_291396996。 1. 前言 適用版本:【8.1.0及以上】 GaussDB(DWS)所有內部組件CN、DN、GTM、CM等採用多活或主備設計,通過集群管理進行故障檢測和切換,保證了單點故障場景下業務的可靠性。此外還採 ...


本文分享自華為雲社區《GaussDB(DWS)業務高可靠原理》,作者: yd_291396996。

1. 前言

適用版本:【8.1.0及以上】

GaussDB(DWS)所有內部組件CN、DN、GTM、CM等採用多活或主備設計,通過集群管理進行故障檢測和切換,保證了單點故障場景下業務的可靠性。此外還採用了CN RETRY、遠程讀、ELB等技術進一步對業務進行保障,下麵將對這幾種技術的原理進行詳細的介紹。

2. CN RETRY

CN Retry是提高資料庫系統HA技術中的一環,配合集群故障自恢復,實現集群實例故障業務不中斷,其要做到的是故障時業務的重試(實現業務不中斷,提高業務的連續性)。

2.1 原理介紹

對於來自gsql客戶端、JDBC、ODBC驅動的SQL語句,在SQL語句執行失敗時,CN端能夠自動識別語句執行過程中的報錯,並重新下發任務進行自動重試。CN Retry功能是預設開啟的,由GUC參數max_query_retry_times進行控制,支持範圍是0-20,預設為6,代表可語句出錯時會自動重試6次,0代表關閉該功能,GaussDB(DWS)絕大部分錯誤類型都支持CN Retry功能,比如主機單點故障,業務斷連的情況。

2.2 解決的問題

在集群故障場景為實現用戶業務不中斷,首先需要集群能夠從故障狀態恢復到可用狀態,集群HA能力實現了集群在故障時的自恢復,然後需要有重執行機制保障業務不中斷,CN Retry實現故障場景CN 端語句自動重執行,重試過程對用戶是無感知的。

2.3 技術方案

CN Retry在CN端實現故障報錯時的語句自動重執行。CN端作為語句執行的入口,在語句執行報錯時,rerty機制識別該報錯,如果是可以被retry的錯誤類型,先將報錯前已執行的操作進行回滾,而後重新執行該語句。如果能夠執行成功,則跳過執行過程中的報錯(不將執行過程中的錯誤信息上報給客戶端),重執行的動作客戶端無感知,經嘗試後如果依然無法成功執行則將錯誤信息上報給客戶端。

2.4 技術規格

3. 遠程讀

在GaussDB(DWS)中,主備DN是預設強同步的,具備一致性。當主DN遇到數據錯誤的情況時,可以去備DN請求對應的Page/CU,只要備DN已經redo完對應的數據,即可返回Page/CU給主DN。

3.1 原理介紹

遠程讀具體原理如下:

  • 主DN對行存表和列存表的數據校驗。
  • 實現主備間通信,備DN根據主DN的請求返回對應的Page/CU。
  • 主DN遇到數據錯誤時向備DN發生數據頁請求。
  • 備DN根據請求讀取數據並校驗,返回數據給主DN。
  • 主DN校驗返回的數據,校驗通過則覆蓋本地數據
  • 此外,主DN還需記錄數據錯誤,提供視圖給CM,CM向上返回告警,提示用戶更換磁碟。

3.2 規格約束

  • 由於依賴主備機制,只能處理DN上數據錯誤,並且備機處於可以查詢狀態。
  • 數據錯誤校驗,依賴有校驗信息的生成。歷史數據依賴擴容或定期Vacuum來生成校驗信息。
  • 僅針對數據靜默損壞場景,可以通過遠程讀解決;對於操作系統和文件系統上的異常,應通過節點隔離或主備倒換方式處理。
  • 從遠程讀取數據後,本地數據對本地Page/CU進行原位覆蓋。儘量進行恢復,不保證下次讀時依然正常。
  • 臨時表,Unlogged表在備機無數據,不支持遠程讀。

4. ELB

華為雲彈性負載均衡( Elastic Load Balance)將訪問流量自動分發到多台雲伺服器,擴展應用系統對外的服務能力,實現更高水平的應用容錯。消除單點故障提升應用系統的可用性。

  1. 存在負載均衡時,當出現接入點CN故障,CN1的流量會自動切換至CN2
  2. 未配置負載均衡的集群,當出現接入點CN故障,CN1的流量會被丟棄,引發業務受損

4.1 組件介紹

彈性負載均衡由以下3部分組成:

  1. 負載均衡器:接受來自客戶端的傳入流量並將請求轉發到一個或多個可用區中的後端伺服器。
  2. 監聽器:您可以向您的彈性負載均衡器添加一個或多個監聽器。監聽器使用您配置的協議和埠檢查來自客戶端的連接請求,並根據您定義的分配策略和轉發策略將請求轉發到一個後端伺服器組裡的後端伺服器。
  3. 後端伺服器:每個監聽器會綁定一個後端伺服器組,後端伺服器組中可以添加一個或多個後端伺服器。後端伺服器組使用您指定的協議和埠號將請求轉發到一個或多個後端伺服器。對應DWS集群,後端伺服器組綁定是CN節點。

4.2 功能介紹

流量調度:ELB通過監聽器檢查連接請求,根據定義的分配策略將請求流量分發至後端伺服器。

健康檢查:定期檢查後端伺服器的業務可用性,確保將請求發送到健康檢查正常的ECS,這裡的ECS指DWS集群的CN節點。

會話保持:將一定時間內來自同一用戶的訪問請求,轉發到同一後端伺服器處理,保證用戶訪問的連續性。

4.3 彈性負載均衡類型

獨享型負載均衡:獨享型負載均衡實例實例性能獨享,資源隔離,實例的性能不受其他實例的影響,單實例最高支持2kw併發,您可根據業務需要選擇不同規格的實例。

共用型負載均衡:屬於集群部署,實例資源共用,實例的性能會受其它實例的影響,不支持選擇實例規格,集群最高可支持每秒新建連接數不超過100萬,1億併發連接。共用型負載均衡就是原增強型負載均衡。

4.4 典型應用場景

潮汐效應業務:隨時在ELB上添加和移除後端伺服器,同時結合彈性伸縮服務,更好的提升業務的靈活擴展能力。

訪問量較大業務:通過ELB將訪問流量均衡的分發到多個後端雲伺服器上,確保業務快速平穩運行。

消除單點故障:通過健康檢查及時發現並屏蔽後端故障伺服器,並將流量轉發到後端其他正常的伺服器上,確保業務不中斷。

5. 總結

本文主要介紹了GaussDB(DWS)為業務高可靠保駕護航的三大利器:CN RETRY、遠程讀、ELB。CN RETRY可以實現用戶無感知的業務重試;遠程讀可以解決部分磁碟故障導致的文件損壞故障;ELB則可以在CN故障時,實現秒級的流量轉發,將請求發送給其他CN。此外還補充了當前CN RETRY與遠程讀的規格約束。

點擊關註,第一時間瞭解華為雲新鮮技術~

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實驗介紹: 額外的域控制器,不僅他們共同管理域,分擔了負荷。 在一臺域控制器故障的時候,另一臺還能代替它繼續工作。 一:dns2安裝ad域服務 配置dns2的ip 首選dns伺服器填dns1的IP 使其能互相ping通 添加ad域服務,一直點到安裝 二:將dns2變成第二台域伺服器 如圖點擊 和安裝 ...
  • 實驗介紹: 當電腦聯入網路時,域控制器首先要鑒別這臺電腦是否是屬於這個域的,用戶使用的登錄賬號是否存在、密碼是否正確。如果以上信息有一樣不正確,那麼域控制器就會拒絕這個用戶從這臺電腦登錄,相當於一個單位的門衛一樣。 一:dns1上安裝AD域服務 打開一臺windows虛擬機,改名為dns1 添加ad ...
  • Arduino IDE 環境配置 目錄Arduino IDE 環境配置1. 安裝方式2. 操作方法(Arduino中文社區)2.1. 安裝Arduino IDE2.2. 下載固件2.3. 修改Arduino IDE語言2.4. 添加開發板管理網址2.5. 運行離線包2.6. 檢查安裝是否成功 1. ...
  • 前提 centos7系統 新建系統時選擇的預設分區 vgs等查看捲組命令無回顯 根目錄磁碟空間不足 大致流程及註意事項 處理方法:刪除再重建 不會導致其中的數據丟失 防止出現意外,請備份或者快照 1.率先在VMware中對虛擬機進行磁碟容量擴容 此處進行20g --> 40g的擴容 2.再在虛擬機中 ...
  • 問題描述 在使用VMWare17.5.0版本安裝ubuntu22.0.4.4的時候遇到問題。安裝完成ubuntu之後,我在虛擬機中點擊滑鼠左鍵沒有問題,單獨按下鍵盤也沒有問題,但是如果按下鍵盤的同時在按下滑鼠左鍵就會卡住。而且100%穩定復現。 具體的卡死按鍵: ctrl+滑鼠左鍵 alt+滑鼠左鍵 ...
  • Ubuntu Server 20.04詳細安裝教程 1. Ubuntu Server20.04啟動盤製作 1.1 下載鏡像 去Ubuntu官網找到20.04的鏡像文件(20.04下載地址),按照自己的需求下載 iso文件 1.2 製作啟動盤 用Rufus製作啟動盤,到官網下載文件(rufus官網) ...
  • 蘇州農商銀行基於GaussDB資料庫,對核心業務系統“超級網銀”進行了全面改造升級,極大提升了系統的穩定性和安全性。 ...
  • 在GreatSQL中,Binlog可以說是 GreatSQL 中比較重要的日誌了,在日常開發及運維過程中經常會遇到。Binlog即Binary Log,二進位日誌文件,也叫作變更日誌(Update Log)。 詳細Binglog日誌介紹 Binglog主要應用於數據恢復和數據複製,但是在Binlog ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...