《設計數據密集型應用》——閱讀小記

設計數據密集型應用

這本書非常推薦看英語版,如果考過了CET-6就可以很輕松的閱讀這本書。

當前計算機軟件已經不是單體的時代了,分布式系統,微服務現在是服務端開發的主流,如果沒有讀過這本書,則強力建議讀這本書。

當前開發的系統主要分為兩種,一種是數據密集型,一種是就算密集型。

數據在分布式系統中有很多中存在方式,持久化數據,網絡協議,緩存都是。

這本書每章最后都有章節總結,可以根據這些總結進行學習。

1、數據系統基石

基本的類似于可靠性、可伸縮性、可維護性需要在系統中有得到體現,這不僅需要開發。也需要運維,測試等崗位的支持才能得到結果。

存儲結構與查詢語句,MySQL使用B+樹,mongoDB使用GSON,以及其他的一些數據使用的數據結構,并且,查詢語句不僅可以是SQL92協議中的查詢格式,也可以是API的方式,xml的方式等

存儲與檢索,查可以使用索引輔助檢索,SSTables和LSM-Tree,B樹等數據結構可以用來作為檢索工具,存儲引擎分為OLAP和OLTP,分別專注于數據檢索和事務,OLTP中又存在兩種方式日志結構學派:不會更新只會追加寫入,就地更新學派可以直接更新到原有數據中

數據庫同樣需要網絡傳輸,因此需要有可以維護可拓展的網絡協議,如RPC

2、分布式數據

分布式系統有可能有一主多從,多主多從等方式,這意味著需要對于一個結點的數據及時更新到其他節點中,方式分別是一主多從,多主多從,無主從,一主多從最常見,也可以通過使用一個節點作為proxy,經由該節點同步給其他節點,多主多從會有時鐘不一致導致的問題,事務上的問題等,主要目的是為了讓數據庫離用戶更近一些,如果沒有更多的好處的話則不需要這種方式,這種方式弊端較大;無主從方式可以被認為是kafka的broker方式類似,根據一些特定的可用性判斷方式,如“活躍節點+可以同步節點>全部節點代表集群可用”這種方式,來進行這種方式集群的使用,如果使用,其他的數據復制時的操作,如從庫恢復,故障切換與再選舉等。

以上只是復制的三種路徑, 如MySQL就有互為主從,redis集群也有多種方式。

分區有多種分布方式,可以使用鍵值對進行分區,但是不同的分區熱點不一樣,存在負載傾斜和熱點刪除;此外也有根據文檔的分區以及基于關鍵詞的分區

分布式集群會帶來分布式事務,這一張主要是講解ACID以及不同的層級下的事務級別會導致什么問題。

分布式系統的弊端,一般會有網絡問題,異步問題,時鐘不可靠,分布式算法等問題

一致性與共識,這一張主要講解Seata的一些信息以及分布式算法的信息,但是不深入,需要額外找資料進行學習。

3、衍生數據

批處理,流處理,這些都是大數據相關的一些原則,如果有興趣的話可以進行查看

推薦閱讀

  1. 《DDIA 逐章精讀》小冊
  2. DDIA精讀|分布式系統中的副本和分片、KV 分片、分片均衡,以及路由請求

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904906.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【SpringMVC】詳解cookie,session及實戰

目錄 1.前言 2.正文 2.1cookie與session概念 2.2返回cookie參數 2.3設置session 3.小結 1.前言 哈嘍大家好吖,今天繼續來給大家來分享SpringMVC的學習,今天主要帶來的是cookie與session的講解以及通過postman和fiddler來實戰,廢話不多…

令狐沖的互聯網大廠Java面試之旅

場景描繪:互聯網大廠Java面試 在某個陽光明媚的上午,令狐沖來到了風清揚所在的互聯網大廠,準備迎接他的Java開發工程師面試。風清揚是一位以嚴謹和深厚技術功底著稱的面試官,令狐沖稍顯緊張,但他相信自己的準備。 第…

照片to谷歌地球/奧維地圖使用指南

軟件介紹 照片to谷歌地球/奧維地圖是一款由WTSolutions開發的跨平臺圖片處理工具,能夠將帶有GPS信息的照片導入Google Earth(谷歌地球)或奧維地圖。該軟件支持Windows、Mac、iOS、Linux和Android系統,無需下載安裝,直…

客戶端建立一個連接需要占用客戶端的端口嗎

客戶端建立TCP連接時需占用本地端口,具體機制如下: 一、端口占用的必要性 四元組唯一性? TCP連接通過?源IP、源端口、目標IP、目標端口?四元組唯一標識。客戶端發起連接時,必須綁定本地端口以完成通信標識。 動態端口分配? 客戶端操作…

【生存技能】ubuntu 24.04 如何pip install

目錄 原因解決方案說明 在接手一個新項目需要安裝python庫時彈出了以下提示: 原因 這個報錯是因為在ubuntu中嘗試直接使用 pip 安裝 Python 包到系統環境中,ubuntu 系統 出于穩定性考慮禁止了這種操作 這里的kali是因為這臺機器的用戶起名叫kali,我也不知道為什么…

智能時代下,水利安全員證如何引領行業變革?

當 5G、AI、物聯網等技術深度融入水利工程,傳統安全管理模式正經歷顛覆性變革。在這場智能化浪潮中,水利安全員證扮演著怎樣的角色?又將如何重塑行業人才需求格局? 水利工程智能化轉型對安全管理提出新挑戰。無人機巡檢、智能監測…

TDengine 在智能制造中的核心價值

簡介 智能制造與數據庫技術的深度融合,已成為現代工業技術進步的一個重要里程碑。隨著信息技術的飛速發展,智能制造已經成為推動工業轉型升級的關鍵動力。在這一進程中,數據庫技術扮演著不可或缺的角色,它不僅承載著海量的生產數…

微調ModernBERT為大型語言模型打造高效“過濾器”

ModernBERT(2024 年 12 月)是最近發布的小型語言模型,由 Answer.AI、LightOn 和 HuggingFace 共同開發。它利用了現代優化技術,如用于 8,192 token 上下文窗口的 RoPE 和 GeGLU layers,在保持效率的同時提升性能。jina…

電網拓撲分析:原理與應用

在現代電力系統中,電網拓撲分析是一項至關重要的技術,它為電力系統的安全、穩定和高效運行提供了堅實的基礎。電網拓撲描述了電力系統中各元件(如發電機、變壓器、輸電線路、負荷等)之間的連接關系,通過拓撲分析&#…

OSPF案例

拓撲圖: 要求: 1,R5為ISP,其上只能配置IP地址;R4作為企業邊界路由器, 出口公網地址需要通過PPP協議獲取,并進行chap認證 2,整個OSPF環境IP基于172.16.0.0/16劃分;…

2D橫板跳躍游戲筆記(查漏補缺ing...)

1.Compression(壓縮質量):可以改為None,不壓縮的效果最好,但占用內存 2.Filter Mode(過濾模式):可以選擇Point(no filter) 3.Pixels Per Unit:是…

MAD-TD: MODEL-AUGMENTED DATA STABILIZES HIGH UPDATE RATIO RL

ICLR 2025 spotlight paper 構建能夠在少量樣本下學習出優良策略的深度強化學習(RL)智能體一直是一個極具挑戰性的任務。為了提高樣本效率,近期的研究嘗試在每獲取一個新樣本后執行大量的梯度更新。盡管這種高更新-數據比(UTD&am…

Dia瀏覽器:AI驅動瀏覽網頁,究竟怎么樣?(含注冊申請體驗流程)

名人說:博觀而約取,厚積而薄發。——蘇軾《稼說送張琥》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder😊) 目錄 一、Dia瀏覽器簡介1. 什么是Dia瀏覽器2. 開發背景與公司簡介3. 與傳統瀏覽器的區別 …

SSL/TLS 證書與數字簽名:構建互聯網信任的詳解

在浩瀚的數字世界中,信任是安全通信的基石。當我們通過瀏覽器訪問一個 HTTPS 網站、進行在線支付,或者下載一個重要的軟件更新時,我們如何能確信自己正在與合法的、未被仿冒的對方進行交互?我們又如何能保證傳輸的數據沒有被中途竊…

近日部署跑通的若干多模態模型總結與論文概述

CLIP模型概述與落地測試 CLIP模型全稱是Contrastive Language-Image Pretraining??(對比語言圖像預訓練)。是OpenAI于2021年提出的多模態預訓練模型,通過對比學習對齊圖像和文本的表示,實現零樣本(zero-shot&#x…

Web3 初學者的第一個實戰項目:留言上鏈 DApp

目錄 📌 項目簡介:留言上鏈 DApp(MessageBoard DApp) 🧠 技術棧 🔶 1. Solidity 智能合約代碼(MessageBoard.sol) 🔷 2. 前端代碼(index.html script.js…

LeetCode 270:在二叉搜索樹中尋找最接近的值(Swift 實戰解析)

文章目錄 摘要描述題解答案題解代碼分析示例測試及結果時間復雜度空間復雜度總結 摘要 在日常開發中,我們經常需要在一組有序的數據中快速找到最接近某個目標值的元素。LeetCode 第 270 題“Closest Binary Search Tree Value”正是這樣一個問題。本文將深入解析該…

Kotlin高階函數多態場景條件判斷與子邏輯

Kotlin高階函數多態場景條件判斷與子邏輯 fun main() {var somefun: (Int, Float) -> Longval a 4val b 5fsomefun multi()//if 某條件println(somefun.invoke(a, b))//if 某條件somefun add()println(somefun.invoke(a, b)) }fun multi(): (Int, Float) -> Long {re…

嵌入式學習--江協51單片機day4

昨天周五沒有學習,因為中午沒有睡覺,下午和晚上擠不出整塊的時間。周日有考試今天也沒有學很多啊,但以后周末會是學一天,另一天休息和寫周總結。 今天學了串口通信和LED點陣屏,硬件原理是真的很迷,一但想搞…

Spring Cloud 以Gateway實現限流(自定義返回內容)

前言 Spring Cloud Gateway自帶RequestRateLimiterGatewayFilterFactory限流方案,可基于Redis和RedisRateLimiter實現默認算法為令牌桶的請求限流。作為自帶的該限流方案,其可與Spring生態的其它各項組件無縫集成,并且自身實現也相對完善/好用…