System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及分布式系統,特別是一種分布式實時數據存儲、訪問、同步方法及系統。
技術介紹
1、傳統的單一服務應用架構隨著用戶量的增加,單服務或中心服務無法滿足系統負載需求,并且在系統故障時會導致所有服務癱瘓,造成嚴重損失。因此,解決去中心化問題的主要途徑包括分布式存儲、去中心化架構、邊緣計算和區塊鏈技術。其中,分布式存儲是去中心化的核心技術,它通過跨域分布和多節點存儲,確保系統的高可用性和靈活性,同時增強數據安全性,提高服務器負載能力和數據訪問速度。
2、電力監控軟件,如光伏電站、水電站或電網監控系統,通常需要監控和訪問多個節點的數據。這些系統從小到大,包括從機組數據的監控到集控系統,可能需要管理千萬級的數據點。監控軟件對數據有較高的安全需求,一方面需要系統冗余備份以確保單個節點故障不影響整體系統運行;另一方面,用戶應用端需要及時響應采集數據的變化,在可接受的時間范圍內做出相應操作,以保證服務的安全性和可靠性。
技術實現思路
1、鑒于現有的分布式存儲和訪問系統在性能、可靠性、擴展性和數據一致性方面存在的問題,提出了本專利技術。
2、因此,本專利技術所要解決的問題在于如何實現分布式實時數據存儲、訪問和同步的方法及系統。
3、為解決上述技術問題,本專利技術提供如下技術方案:
4、第一方面,本專利技術實施例提供了一種分布式實時數據存儲、訪問、同步方法,其包括采用thrift微服務架構,定義服務接口及通信協議,構建分布式系統框架;基于分布式系
5、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:構建實時數據存儲結構包括以下步驟:在每個數據節點的sqlite本地配置庫中創建class_def表;在同一sqlit本地配置庫中創建field_def表;設計sqlite配置同步機制,通過zookeeper將中央配置信息同步到各數據節點的sqlite本地存儲中;基于class_def表和field_def表,設計數據類型和數據模型的動態擴展接口,支持運行時添加或修改數據類型和字段,并通過zookeeper將變更推送到所有節點;制定實時數據表命名規則;基于實時數據表命名規則和節點名稱進行數據配置,使用zookeeper協調各節點;開發sqlite配置讀取功能,從本地class_def表和field_def表中提取數據結構定義;建立數據模型與thrift服務接口的映射關系;根據數據結構定義和映射關系,在每個數據節點上構建實時數據存儲結構,并通過zookeeper協調各節點的數據分布。
6、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:制定節點分區策略包括以下步驟:基于實時數據表命名規則,設計數據節點分區策略,確定數據在不同數據節點上的分布方式;在zookeeper中創建分區信息節點,分區信息節點用于存儲分區策略及節點分配信息;開發分區管理服務,提供thrift接口用于分區信息的查詢、更新和同步;設計動態分區調整機制,根據負載情況調整數據分布,并通過zookeeper通知各數據節點;基于thrift服務接口,設計數據路由層,計數據路由層用于客戶端請求向相應數據節點的轉發;開發節點健康檢查機制,通過zookeeper監控數據節點狀態,并在數據節點狀態變化時觸發相應操作;基于數據模型與thrift服務接口映射關系,設計客戶端請求分配機制,將請求分配到相應的數據節點;設計跨數據節點查詢和聚合機制,允許通過單一thrift服務接口訪問多個數據節點上的數據;構建適配thrift服務的網絡拓撲結構;開發元數據管理服務,管理數據模型、數據節點分區信息和網絡拓撲結構。
7、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:根據負載情況調整數據分布包括以下步驟:構建負載監控模塊,以預設時間間隔t1采集各數據節點的性能指標集合;將采集的性能指標集合i映射為數據節點的歸一化負載得分s,其中0≤s≤1;設置負載閾值區間[lmin,lmax],當數據節點的歸一化負載得分s滿足s>lmax或s<lmin的條件持續時間超過預設時間t2時,觸發分區調整流程;設計數據分區遷移決策模塊,基于歸一化負載得分集合s={s1,...,sn}和當前分區分布狀態p生成遷移方案m={m1,...,mk};在zookeeper中創建遷移任務節點集合z={z1,...,zk};開發數據遷移執行模塊e(z),用于監聽zookeeper中的遷移任務節點集合z,并按預設并發度c執行數據遷移操作;設計分區信息更新機制,在遷移任務mi完成后,更新zookeeper中的分區映射關系;當分區映射關系發生變化時,在預設時間窗口t3內,通過zookeeper向所有相關節點推送更新后的分區信息;開發回滾機制b(m,r0,e),其中m為當前執行的遷移方案,r0為調整前的初始分區映射關系,e為預定義的異常情況集合,當分區調整過程中檢測到e中異常事件時,執行以下操作:中止所有正在進行的數據遷移操作;對已完成的遷移任務進行逆向數據傳輸,將數據恢復到源節點;在zookeeper中重置分區映射關系為r0;向所有相關節點廣播回滾完成通知,使其更新本地緩存的分區信息。
8、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:歸一化負載得分s的的計算公式如下:
9、
10、其中,α、β、γ、δ為權重系數,且α+β+γ+δ=1,cpuuage為cpu使用率,memuage為內存占用率,iorate為磁盤i/o速率,iomax為磁盤i/o的最大理論值,netrate為網絡流量速率,netmax為網絡流量的最大理論值。
11、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:節點健康檢查機制包括,在zookeeper中為每個數據節點創建對應的臨時節點;設計健康報告數據結構,健康報告數據結構包括數據節點的基本信息和健康狀態指標;設計數據節點健康報告模塊,以預設時間間隔t4向對應的zookeeper臨時節點寫入最新的健康報告;開發中央監控服務,通過zookeeper的watch機制監聽所有數據節點的臨時節點;設置健康狀態判定規則集;當檢測到第一情況時,將數據節點標記為異常狀態,第一情況包括zookeeper臨時節點被刪除,健康報告h中的指標違反健康狀態判定規則集中的任一規則;設計狀態變化處理模塊,當數據節點狀態從正常變為異常時,執行第一操作;當異常節點恢復正常狀態時,執行第二操作。
12、作為本專利技術所述分布式實時數據存儲、訪問、同步方法的一種優選方案,其中:第一操作包括,將異常節點從負載均衡器中移除,觸發數據重分本文檔來自技高網...
【技術保護點】
1.一種分布式實時數據存儲、訪問、同步方法,其特征在于:包括,
2.如權利要求1所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述構建實時數據存儲結構包括以下步驟:
3.如權利要求1所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述制定節點分區策略包括以下步驟:
4.如權利要求3所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述根據負載情況調整數據分布包括以下步驟:
5.如權利要求4所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述歸一化負載得分S的的計算公式如下:
6.如權利要求3所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述節點健康檢查機制包括,
7.如權利要求6所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述第一操作包括,
8.一種分布式實時數據存儲、訪問、同步系統,基于權利要求1~7任一所述的分布式實時數據存儲、訪問、同步方法,其特征在于:還包括,
9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于:所述計算機程序被處理器執行時實現權利要求1~7任一所述的分布式實時數據存儲、訪問、同步方法的步驟。
...【技術特征摘要】
1.一種分布式實時數據存儲、訪問、同步方法,其特征在于:包括,
2.如權利要求1所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述構建實時數據存儲結構包括以下步驟:
3.如權利要求1所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述制定節點分區策略包括以下步驟:
4.如權利要求3所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述根據負載情況調整數據分布包括以下步驟:
5.如權利要求4所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述歸一化負載得分s的的計算公式如下:
6.如權利要求3所述的分布式實時數據存儲、訪問、同步方法,其特征在于:所述...
【專利技術屬性】
技術研發人員:李翔,陳福鋒,王凱,李金陽,單良,孫朝霞,王鑫,余良,李俊梅,趙玉嬌,湯帥健,邊麗娟,程丹丹,仲偉年,張毅,郭恩見,張志永,趙皓,
申請(專利權)人:南京河海南自水電自動化有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。