当前位置: 首页 > backend >正文

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

设计数据密集型应用

这本书非常推荐看英语版,如果考过了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.xdnf.cn/news/5330.html

相关文章:

  • JAVA——抽象类和接口的区别
  • 【Linux基础】系统监控和进程管理指令
  • 【Reality Capture 】Reality Capture1.5中文版安装教程(附安装包下载)
  • 英语六级---2024.12卷三 仔细阅读2
  • VRRP协议-IP地址冗余配置
  • Autoware播放提示音
  • ospf实验报告
  • Markdown—LaTeX 数学公式
  • 深入解析路由策略:从流量控制到策略实施
  • DAX 权威指南1:DAX计算、表函数与计算上下文
  • 《从零构建大模型》PDF下载(中文版、英文版)
  • python-django项目启动寻找静态页面html顺序
  • 洛图报告中的 FSHD 是什么?—— 解密九天画芯推动的三色光源显示技术
  • PDF转Excel工具推荐 小巧免费批量自动转换
  • Plant Simulation 基于Windows消息系统跨线程通讯方案
  • 使用 librosa 测量《忘尘谷》节拍速度
  • 【Linux基础】文件查找和文本处理指令
  • 天线的PCB设计
  • 数据结构·ST表
  • diy装机成功录
  • Vue3组件通信 emit 的工作原理
  • 真人配音与AI创作有声读物
  • 操作系统学习笔记第1章 (竟成)
  • List接口
  • C PRIMER PLUS——第7节:指针
  • Day 3:Warp协作功能深度实战
  • 运放OP方向技术要点和大厂题目解析
  • 文件IO之系统IO
  • dockerfile编写入门
  • 十六、统一建模语言 UML