《分散式技術原理與演算法解析》學習筆記Day21

来源:https://www.cnblogs.com/wing011203/archive/2023/02/24/17151719.html
-Advertisement-
Play Games

分散式存儲系統將用戶存儲的數據根據某種規則存儲到不同機器上,當用戶想要獲取指定數據時,再按照規則到存儲數據的機器中獲取。數據生產者/消費者、數據索引和數據存儲是分散式存儲系統的三大要素。 ...


分散式數據存儲三要素

什麼是分散式數據存儲系統?

分散式存儲系統的核心邏輯,就是將用戶需要存儲的數據根據某種規則存儲到不同的機器上,當用戶想要獲取指定數據時,再按照規則到存儲數據的機器中獲取。

分散式存儲系統的三要素:

  • 數據生產者 / 數據消費者
  • 數據索引
  • 數據存儲

數據生產者生產數據,將數據存儲到分散式數據存儲系統中,數據消費者是從分散式數據存儲系統中獲取數據進行消費;數據索引將訪問數據的請求轉發到數據所在的存儲節點;存儲設備用來存儲數據。

分散式系統數據類型

分散式系統中存在大量不同類型的數據,根據數據的特征,我們可以將其分為三類:

  • 結構化數據,指關係模型數據,特征是數據關聯較大、格式固定,一般採用分散式關係資料庫進行存儲和查詢。
  • 半結構化數據,指非關係模型數據,有基本固定結構模式的數據,特征是數據之間關係比較簡單,一般採用分散式鍵值系統進行存儲和使用。
  • 非結構化數據,指沒有固定模式的數據,特征是數據之間關聯不大,這種數據一般存儲到文檔中,通過ElasticSearch等進行檢索。

數據分片與數據複製

數據分片技術,是指分散式存儲系統按照一定的規則,將數據存儲到相應的存儲節點中,或者到相應的存儲節點中獲取想要的數據。這種技術一方面可以降低單個存儲節點的存儲和訪問壓力,另一方面可以通過規定好的規則快速找到數據所在的存儲節點,從而大大降低搜索延遲,提高用戶體驗。

數據分片可以採取不同的方式,包括:

  • 數據特征分片
  • 數據範圍分片
  • 哈希分片
  • 一致性哈希分片

數據複製是指將數據進行備份,使得多個節點存儲該數據。它可以通過主備方式存儲的方式,提高分散式系統的可用性和可靠性。

在實際的分散式存儲系統中,數據分片和數據複製通常是共存的:

  • 數據通過分片方式存儲到不同的節點上,以減少單節點的性能瓶頸問題。
  • 數據的存儲通過主備方式保證可靠性,即對每個節點上存儲的分片數據,採用主備方式存儲,來保證數據可靠性,其中主備節點上數據一致,是通過數據複製技術實現的。

數據存儲

根據上述三種不同的數據類型,常採用的數據存儲選型方案如下:

  • 分散式資料庫,通過表格來存儲結構化數據,方便查找。常見的方案包括:MySQL Sharding、Microsoft SQL Azure、Google Spanner、Alibaba OceanBase等。
  • 分散式鍵值系統,通過兼職對來存儲半結構化數據。常見的方案包括:Redis、Memcache等。
  • 分散式存儲系統,通過文件、塊、對象等來存儲非結構化數據。常見的方案包括:Ceph、GFS、HDFS、Swift等。

詳細的分散式資料庫比較如下。

詳細的分散式存儲系統比較如下。

    作者:李潘     出處:http://wing011203.cnblogs.com/     本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • volatile是Java語言中的一種輕量級的同步機制,它可以確保共用變數的記憶體可見性,也就是當一個線程修改了共用變數的值時,其他線程能夠立即知道這個修改。 ...
  • 自己實現Mybatis底層機制-02 7.任務階段4&5 階段4任務:開發Mapper介面和Mapper.xml 階段5任務:開發和Mapper介面相映射的MapperBean (1)Mapper介面 package com.li.mapper; import com.li.entity.Monst ...
  • 1、背景 最近工作中有需要管理定時任務的需求,項目使用了kingbase作為資料庫,所以研究了xxl-job適配kingbase,根據xxl-job作者的版本更新日誌描述,v2.4.0之後官方將支持多資料庫,敬請期待 xxl-job:2.3.1 金倉kingbase:V8R3 已上傳修改之後的版本到 ...
  • 面向對象進階第二天 許可權修飾符 作用:約束成員變數,構造器,方法等的訪問範圍 自己定義成員(方法,成員變數,構造器等)一般需要滿足如下要求: 成員變數一般私有。 方法一般公開。 如果該成員只希望本類訪問,使用private修飾。 如果該成員只希望本類,同一個包下的其他類和不同包下的子類訪問,使用pr ...
  • 不知道現在還有多少人玩知某乎,我們那時候沒事就刷刷知某乎,貼某吧,不知留下了多少足跡。 知乎上問答的質量挺高,今天咱們就對其問答內容進行爬蟲實驗。 效果展示 可以看到,數據咱們就獲取下來了,保存就可以了。 代碼展示 import requests import re import json impo ...
  • Ansible-playbook 快速入門到放棄 隔岸紅塵忙似火,當軒青嶂冷如冰。 1-簡介 playbook 相當於可以把模塊命令都寫入到配置文件裡面,這樣就可以直接執行配置文件了,類似腳本。 2-playbook 初體驗 編寫test.yml 文件,在serviceA 主機機器上的/opt/tj ...
  • 字元串 字元集用來做什麼 字元集是為每個字元分配一個唯一的ID 在同一個字元集內,字元的ID是唯一的,不同字元集ID可能是不同的 UTF-8是編碼規則或者說是Unicode的一種實現 UTF-8將Unicode中的字元ID以某種方式進行編碼 變長的編碼規則: 1-4位元組,具體規則: 0xxxx表示0 ...
  • OpenAI註冊(使用代理vpn才行) 準備: 外國郵箱,如gmail、outlook、iCloud郵箱等 外國手機號,或者能接受外國手機驗證碼既可以 (沒有的話文章里有推薦) 1.註冊我們的OpenAI賬號, 訪問地址:https://platform.openai.com/signup 點擊si ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...