《设计数据密集型应用》——阅读小记

设计数据密集型应用

这本书非常推荐看英语版,如果考过了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.mzph.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生态的其它各项组件无缝集成,并且自身实现也相对完善/好用…