无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

高可用與低成本兼得:全面解析 TDengine 時序數據庫雙活與雙副本

在現代(dai)數據(ju)管(guan)(guan)理中(zhong),企業(ye)(ye)對(dui)于可靠性、可用性和成本的平衡有著多樣化的需求。為此,TDengine 在 3.3.0.0 版(ban)本中(zhong)推出了兩(liang)種(zhong)(zhong)不(bu)(bu)同(tong)的企業(ye)(ye)級(ji)解決方(fang)案(an):雙(shuang)活方(fang)案(an)和基于仲(zhong)裁者的雙(shuang)副(fu)本方(fang)案(an),以滿足不(bu)(bu)同(tong)應(ying)用場景下的特殊需求。本文將詳細探討這(zhe)兩(liang)種(zhong)(zhong)方(fang)案(an)的適用場景、技術特點及其最(zui)佳實踐(jian),讓大(da)家深入了解這(zhe)兩(liang)大(da)方(fang)案(an)如何(he)幫助企業(ye)(ye)在高效可靠的數據(ju)存(cun)儲和管(guan)(guan)理中(zhong)取得成功。

TDengine 雙副本(+仲裁者)

為了滿足部分客戶在保證可靠性和可用性條件下盡可能壓縮部署成本的需求,TDengine 提出了基于仲裁者的雙副本方案。該方案通過提供“只有單個服務故障且不出現連續故障”的容錯能力,成為客戶降低成本和提高效率的有效選擇。

相較于傳統的三副本數據庫,雙副本數據庫具有顯著的優勢。它在減少硬件成本的同時,依然能夠保證一定的高可用性。具體來說,雙副本數據庫中每個 Vgroup 僅有兩個 Vnode。當其中一個 Vnode 發生故障時,Mnode 可根據數據同步狀態,裁定另一 Vnode 是否可以獨自對外提供服務。這種機制確保了在某個副本節點故障時,數據不會丟失,并且系統能夠持續進行寫入和查詢操作。

這一方案的適用場景廣泛,面向有降低存儲成本需求的、希望減少物理節點需求的客戶,以及對高可用性要求稍低的客戶。

從技術角度看,雙副本方案具有以下幾個顯著特點:
– 副本數目:時序數據的副本數目為 2,但集群內節點數目必須大于等于 3。
– 自動切主:當時序數據的某個副本所在的物理節點宕機時,可以自動切換主節點,確保數據不丟失,并且能夠持續寫入和查詢。
– 選主機制:雙副本選主由高可用的 Mnode 提供仲裁服務,而不是由 Raft 組內決定。

仲(zhong)裁者 (Arbitrator) 在雙(shuang)副本方案(an)中(zhong)發揮(hui)關鍵作(zuo)用。它提(ti)(ti)供(gong)仲(zhong)裁服務但不存(cun)儲數據。當 Vgroup 因(yin)某一(yi)(yi) Vnode 故障而無法提(ti)(ti)供(gong)服務時,Arbitrator 可(ke)(ke)以根(gen)據同(tong)步情況指定同(tong)組另(ling)一(yi)(yi) Vnode 成為 Assigned Leader,無論(lun)其他副本 Vnode 是(shi)否存(cun)活,均可(ke)(ke)一(yi)(yi)直響(xiang)應(ying)用戶請求。這一(yi)(yi)機(ji)制確保(bao)了即使在某個副本節(jie)點(dian)故障的情況下,Assigned Leader 仍然能(neng)夠(gou)一(yi)(yi)直響(xiang)應(ying)用戶請求,從(cong)而提(ti)(ti)高系統的可(ke)(ke)靠性和可(ke)(ke)用性。

高可用與低成本兼得:全面解析 TDengine 時序數據庫雙活與雙副本 - TDengine Database 時序數據庫

TDengine 雙活

部分用戶由于部署環(huan)境(jing)的(de)(de)特(te)殊性,只能部署兩(liang)臺服(fu)務器(qi),同時(shi)希望實現一(yi)定的(de)(de)服(fu)務高可(ke)用和(he)數據高可(ke)靠(kao)。針對這(zhe)些(xie)需求,TDengine 提出(chu)了雙活方(fang)案。雙活方(fang)案不僅適用于一(yi)些(xie)資源受限(xian)的(de)(de)環(huan)境(jing),也能在兩(liang)套(tao) TDengine 集群之間的(de)(de)災(zai)備場景(jing)中發揮重(zhong)要作用。

在業務(wu)系統(tong)中,雙(shuang)活(huo)架構通常包括兩(liang)臺服(fu)務(wu)器,各自部署(shu)一套服(fu)務(wu)。在業務(wu)層(ceng)看(kan)來,這兩(liang)臺機器和兩(liang)套服(fu)務(wu)組(zu)成了一個(ge)完整的(de)系統(tong)。雙(shuang)活(huo)中的(de)兩(liang)個(ge)節點通常被(bei)稱為 Master-Slave,即“主(zhu)從”或“主(zhu)備”。

雙(shuang)活(huo)方(fang)(fang)(fang)案(an)(an)在多個(ge)場景(jing)中(zhong)都有(you)廣泛(fan)應用(yong)。首先,對于因部(bu)署(shu)環境(jing)(jing)特殊性(xing)(xing)只能(neng)部(bu)署(shu)兩(liang)臺(tai)服務(wu)器的客戶,雙(shuang)活(huo)方(fang)(fang)(fang)案(an)(an)是理想選擇。這(zhe)些客戶希望在有(you)限的硬件資源(yuan)(yuan)下,仍然能(neng)夠實現(xian)(xian)服務(wu)高(gao)可(ke)用(yong)和數(shu)據高(gao)可(ke)靠(kao)。其(qi)次,雙(shuang)活(huo)方(fang)(fang)(fang)案(an)(an)在工(gong)業控(kong)制(zhi)領域(yu)(yu)中(zhong)尤為適用(yong)。由于這(zhe)些領域(yu)(yu)對系統可(ke)靠(kao)性(xing)(xing)和數(shu)據準確(que)性(xing)(xing)有(you)著極高(gao)的要求(qiu)(qiu),雙(shuang)活(huo)架構能(neng)夠很好地滿(man)足這(zhe)些需(xu)求(qiu)(qiu)。此外,雙(shuang)活(huo)方(fang)(fang)(fang)案(an)(an)還適用(yong)于災備場景(jing),無論是資源(yuan)(yuan)受(shou)限的環境(jing)(jing)還是不限節點數(shu)目的兩(liang)套 TDengine 集群之(zhi)間(jian)的災備場景(jing),都能(neng)提供有(you)效的解決方(fang)(fang)(fang)案(an)(an)。雙(shuang)活(huo)方(fang)(fang)(fang)案(an)(an)通過一系列技術(shu)機制(zhi)實現(xian)(xian)高(gao)可(ke)用(yong)性(xing)(xing)和數(shu)據可(ke)靠(kao)性(xing)(xing):

  • 首先,系統通過 Client Driver 實現雙系統的 Failover,即在主節點發生故障時,能夠自動切換到從節點,確保服務不中斷。
  • 其次,taosX 實現了主節點到從節點的數據復制,通過數據訂閱的寫接口在寫入復制過來的數據時,在 WAL 中加入特殊標記。
  • 第三,數據訂閱的讀接口在讀取數據時,會自動過濾掉帶有特殊標記的數據,從而避免數據重復復制和無限循環。
高可用與低成本兼得:全面解析 TDengine 時序數據庫雙活與雙副本 - TDengine Database 時序數據庫

當前,雙活(huo)方案僅支持(chi) JDBC 連(lian)接(jie)器和(he) WebSocket 連(lian)接(jie)方式,不支持(chi) Native 連(lian)接(jie)。雙活(huo)兩(liang)端集群必(bi)須同(tong)構,即數(shu)據(ju)庫的命(ming)名(ming)和(he)所有(you)配置參數(shu)必(bi)須完全相同(tong),以確保系(xi)統的正確運(yun)行。

雙副本 VS 雙活,區別與實踐

在 TDengine 的雙副本和雙活(huo)方(fang)案中(zhong)(zhong),雖然(ran)它們都旨在提(ti)升數(shu)據(ju)可靠性(xing)(xing)和服務可用性(xing)(xing),但兩(liang)者在架構設計和實際(ji)應用中(zhong)(zhong)有著顯著的區別。了解(jie)這(zhe)些差異,對于選(xuan)擇合適的方(fang)案并(bing)實現最佳(jia)實踐至關重要。

雙(shuang)(shuang)活(huo)(huo)(huo)方(fang)案(an)和(he)雙(shuang)(shuang)副(fu)本(ben)方(fang)案(an)在(zai)集(ji)(ji)(ji)(ji)群架(jia)構上有明顯的(de)(de)差異(yi)。雙(shuang)(shuang)活(huo)(huo)(huo)方(fang)案(an)需要部署兩(liang)個獨立的(de)(de)集(ji)(ji)(ji)(ji)群,每個集(ji)(ji)(ji)(ji)群內(nei)(nei)部的(de)(de)節(jie)(jie)點(dian)(dian)數(shu)(shu)(shu)可(ke)以(yi)任(ren)意多,而雙(shuang)(shuang)副(fu)本(ben)方(fang)案(an)只需部署一個集(ji)(ji)(ji)(ji)群,但(dan)集(ji)(ji)(ji)(ji)群內(nei)(nei)的(de)(de)節(jie)(jie)點(dian)(dian)數(shu)(shu)(shu)目必須大于(yu)等于(yu)三(san)。這樣(yang)一來,雙(shuang)(shuang)活(huo)(huo)(huo)方(fang)案(an)在(zai)集(ji)(ji)(ji)(ji)群內(nei)(nei)部節(jie)(jie)點(dian)(dian)數(shu)(shu)(shu)目上的(de)(de)靈活(huo)(huo)(huo)性更大,但(dan)同時也增加(jia)了部署和(he)管理的(de)(de)復雜性。雙(shuang)(shuang)活(huo)(huo)(huo)系統(tong)內(nei)(nei)的(de)(de)最小(xiao)節(jie)(jie)點(dian)(dian)數(shu)(shu)(shu)為兩(liang)個,也就是(shi)說每個集(ji)(ji)(ji)(ji)群至少有一個節(jie)(jie)點(dian)(dian);相比之下,雙(shuang)(shuang)副(fu)本(ben)系統(tong)的(de)(de)最小(xiao)節(jie)(jie)點(dian)(dian)數(shu)(shu)(shu)為三(san)個,以(yi)確(que)保(bao)數(shu)(shu)(shu)據的(de)(de)可(ke)靠性和(he)高可(ke)用性。

在同步原理上,雙(shuang)(shuang)活(huo)方(fang)(fang)案通過(guo) taosX 實現(xian)數據同步,依(yi)賴于 taosX 的(de)同步速度,通常在秒(miao)級別(bie)。雙(shuang)(shuang)副本方(fang)(fang)案則(ze)通過(guo) Arbitrator 仲裁選主,由 Raft 協議保證(zheng)數據的(de)一(yi)致性(xing),因此在同步延遲(chi)上表現(xian)更好(hao),沒有(you)(you)延遲(chi)。數據安(an)全性(xing)方(fang)(fang)面,雙(shuang)(shuang)活(huo)方(fang)(fang)案依(yi)賴于 WAL 的(de)保存時長,而(er)(er)雙(shuang)(shuang)副本方(fang)(fang)案則(ze)能確保無數據丟失。高可用性(xing)上,雙(shuang)(shuang)活(huo)方(fang)(fang)案只(zhi)要(yao)有(you)(you)一(yi)個(ge)節點存活(huo)即可提(ti)供服務,而(er)(er)雙(shuang)(shuang)副本方(fang)(fang)案在連(lian)續宕機后,只(zhi)有(you)(you)一(yi)個(ge)節點存活(huo)時,可能無法(fa)提(ti)供服務。

雙副本最佳實踐

  1. 全新部署

雙副本的(de)主(zhu)要價值在于節(jie)省存儲成本的(de)同時能夠有一定(ding)的(de)高可用和高可靠能力。在實(shi)踐中,推薦配置為:

  • N 節點集群 (其中 N>=3)
  • 其中 N-1 個 dnode 負責存儲時序數據
  • 第 N 個 dnode 不參與時序數據的存儲和讀取,即其上不保存副本;可以通過 supportVnodes 這個參數為 0 來實現這個目標
  • 不存儲數據副本的 dnode 對 CPU/Memory 資源的占用也較低,可以使用較低配置服務器
  1. 從單副本升級

假定已經有一個單副本集群,其節點數為 N (N>=1)。將集群的節點數目擴展至 3 個以上,修改 Mnode 的副本數目為 3,在使用 alter database replica 2 的命令修改某個特定數據(ju)庫的副本數。

雙活最佳實踐

雙活系統(tong)通過(guo)數(shu)(shu)據(ju)復(fu)制實(shi)現(xian)雙系統(tong)之(zhi)間的數(shu)(shu)據(ju)同步,但(dan)這種同步只能(neng)保證最終一致性,無(wu)法確保實(shi)時(shi)一致性。主節(jie)點可(ke)(ke)能(neng)在(zai)任意時(shi)刻宕機(ji),宕機(ji)時(shi)可(ke)(ke)能(neng)會有(you)數(shu)(shu)據(ju)差(cha)集,尤(you)其是元數(shu)(shu)據(ju)差(cha)集。在(zai)完(wan)成主備切(qie)換后(hou),業務層可(ke)(ke)能(neng)會發起(qi)重復(fu)的建(jian)(jian)表(biao)請求(qiu),但(dan) schema 可(ke)(ke)能(neng)不相同,導致元數(shu)(shu)據(ju)不一致。因此,建(jian)(jian)議在(zai)系統(tong)啟(qi)動(dong)后(hou)集中完(wan)成所有(you)建(jian)(jian)庫建(jian)(jian)表(biao)操(cao)(cao)作,后(hou)續只寫(xie)入(ru)時(shi)序數(shu)(shu)據(ju),盡量避免再進行(xing)元數(shu)(shu)據(ju)操(cao)(cao)作。

結語

無論是雙副本還(huan)是雙活方(fang)(fang)案,TDengine 都為(wei)用(yong)戶提(ti)(ti)供(gong)了強大(da)的(de)(de)數據(ju)存儲(chu)和(he)(he)管理解(jie)決方(fang)(fang)案。雙副本方(fang)(fang)案在節省(sheng)存儲(chu)成本的(de)(de)同時(shi),保(bao)證了一定(ding)(ding)的(de)(de)高(gao)可用(yong)性(xing)(xing)和(he)(he)數據(ju)可靠性(xing)(xing),非常適合(he)資源有限且需(xu)要高(gao)效(xiao)數據(ju)管理的(de)(de)企業。雙活方(fang)(fang)案則通過其靈活的(de)(de)架構和(he)(he)強大(da)的(de)(de)災備(bei)能(neng)力,為(wei)特殊部署環境和(he)(he)高(gao)可靠性(xing)(xing)需(xu)求(qiu)的(de)(de)應用(yong)場景提(ti)(ti)供(gong)了理想的(de)(de)解(jie)決途徑(jing)。通過理解(jie)這兩種(zhong)方(fang)(fang)案的(de)(de)區別(bie)和(he)(he)最佳(jia)實踐,用(yong)戶可以根據(ju)自身需(xu)求(qiu)選擇最適合(he)的(de)(de)方(fang)(fang)案,充分利用(yong) TDengine 的(de)(de)技術優勢,打造穩(wen)定(ding)(ding)、高(gao)效(xiao)的(de)(de)數據(ju)庫系(xi)統(tong)。這不僅提(ti)(ti)升了業務連續性(xing)(xing)和(he)(he)數據(ju)安全(quan)性(xing)(xing),更為(wei)企業的(de)(de)數字化轉型提(ti)(ti)供(gong)了堅實的(de)(de)基礎。