如何系统学习分布式?

这篇具有很好参考价值的文章主要介绍了如何系统学习分布式?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关键词:想要走存储/数据库方向的话,具体路线是啥?重点需要掌握精通哪些知识?

回答

那我简单说一下走存储/数据库这块的学习路线吧。

目前做存储比较热门的是分布式存储方向,有NoSQL的也有关系型数据库的,比如腾讯就有TDSQL,PingCAP 也有TIDB、也有分布式KV存储TIKV。

提到分布式系统,非常经典学习资料肯定首推MIT 6.824(即 MIT 分布式系统课程)

基础的数据结构以及操作系统和计算机网络肯定都是必备的,分布式系统就是通过网络构建在分散的物理节点上。

现在的分布式kv,分布式数据库基本架构是类似的:

  • 基于多副本实现高可用和容灾

  • 分布式查询

  • 数据 Sharding 机制

  • 通过2PC,Paxos/Raft 等协议实现数据一致

存储层目前 LSM Tree用的比较多,可以看看 Google Leveldb 的源码学习:https://github.com/google/leveldb

同时这也是一个非常适合用来学习C++的开源库。

存储层之上在通过分布式一致性协议在多个副本之间做到数据的一致性,以此保证存储的高可用和容错能力。

常见分布式一致性算法是raft和paxos,可以看看raft和paxos的论文。

raft 的实现,还是推荐上面说的 MIT 6.828 的课程实验,这个会有几个Lab,逐步实现一个基于raft的kv

把底层的存储层和分布式一致性协议组装起来,大概就是一个建议的分布式KV。

如果想基于这之上构建关系型数据库,那么需要引入事务层,

Google 算是这方面的鼻祖,后来很多的 NewSQL 数据库基本都是按照 Spanner/F1 论文去实现的:

如何系统学习分布式?,学习,分布式

这里可以学习谷歌的 Percolator 的论文。

然后再往上就是SQL层,SQL包括语法相关解析,执行器,优化器之类的。

当然在学校要学到这里来,比较难,很少有相关课程,但是网上有很多学习资源的。

我这里简单列举一下顺序哈:

  1. leveldb 学习底层存储引擎,目前非常热门的 LSM Tree结构

  2. 分布式一致性算法:MIT6.824,也可以看下CSE 552 ,这门课是来自分布式系统巨牛 Tom Anderson

  3. 学习数据库原理,可以看《数据库系统概念》这本书和cmu15445  的课程,也会实现一个关系型数据库

补充一下,《数据库系统概念》这本书重点关注:

  • 第 3 章:SQL

  • 第 11 章:索引与散列

  • 第 12 章:查询处理

  • 第 13 章:查询优化

  • 第 14 章:事务

  • 第 15 章:并发控制

  • 第 18 章:并行数据库

  • 第 19 章:分布式数据库

如果自己把前面几项学完了(至少估计大半年时间)

 文章来源地址https://www.toymoban.com/news/detail-563035.html

到了这里,关于如何系统学习分布式?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (快手一面)分布式系统是什么?为什么要分布式系统?分布式环境下会有哪些问题?分布式系统是如何实现事务的?

    《分布式系统原理与泛型》中这么定义分布式系统: “ 分布式系统是若干独立计算机的集合, 这些计算机对于用户来说就像单个相关系统 ”, 分布式系统(distributed system)是建立在网络之上的软件系统。 就比如:用户在使用京东这个分布式系统的时候,会感觉是在使用一

    2024年02月08日
    浏览(54)
  • 高级分布式系统-第15讲 分布式机器学习--神经网络理论

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 模糊控制在处理数值数据、自学习能力等方面还远没有达到人脑的境界。人工神经网络从另一个角度出发,即从人脑的生理学和心理学着手,通过人工模拟人脑的工作机理来实现机器的部分智能行为。 人工神经网络(简

    2024年01月19日
    浏览(32)
  • 【分布式websocket】聊天系统消息加密如何做

    前言 先介绍一下对称加密算法,在介绍一下加密流程,然后是介绍一下查询加密消息的策略。然后结合现有技术架构然后去选型。 决定采用客户端解密。简而言之就是采用对称服务端加密。然后将加密内容存储到消息表的content字段。然后客户拉取content字段 然后解密。拉取

    2024年04月14日
    浏览(26)
  • 【学习笔记】minIO分布式文件服务系统

    1.1 minIO是什么? MinIO是专门为海量数据存储、人工智能、大数据分析而设计的对象存储系统。(早前流行的还有FastDFS) 据官方介绍,单个对象最大可存储5T,非常适合存储海量图片、视频、日志文件、备份数据和容器、虚拟镜像等。 采用golang语言编译 客户端和用户端交互采

    2024年02月07日
    浏览(29)
  • MIT 6.5840-分布式系统学习记录

    课程安排 2023 MIT 6.5840 分布式系统 | 环境搭建与 Lab 1 MapReduce - 知乎 (zhihu.com) lab汇总 MIT 6.5840-分布式系统 Lab1

    2024年03月18日
    浏览(40)
  • 【DDD分布式系统学习笔记】RPC调用以及系统初步搭建

    modelVersion: 模型版本,指定POM模型的版本,目前使用的是Maven 4.0.0版本。 groupId: 项目的组织标识符,通常是组织的域名倒序。在这里是 cn.itedus.lottery。 artifactId: 项目的唯一标识符,通常是项目的名称。在这里是 Lottery。 packaging: 项目的打包方式,这里是 pom,表示这是一个聚合

    2024年01月18日
    浏览(38)
  • 分布式 | 如何搭建 DBLE 的 JVM 指标监控系统

    本篇文章采用 Docker 方式搭建 Grafana + Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者:文韵涵 爱可生 DBLE 团队开发成员,主要负责 DBLE 需求开发,故障排查和社区问题解答。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编

    2024年02月12日
    浏览(44)
  • 在学习分布式系统时遇到的五个常见误解

    哈喽大家好,我是咸鱼 我们知道,随着企业规模或者说业务规模的不断扩大,为了应对不断增长的业务需求和提高系统的可伸缩性、可靠性和性能,计算机系统由一开始的单体系统逐渐发展成分布式系统 那么今天咸鱼给大家介绍一些关于小白在学习分布式系统遇到的一些常

    2024年02月07日
    浏览(28)
  • 如何本地搭建开源分布式任务调度系统DolphinScheduler并远程访问

    本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内网穿透工具实现公网访问DolphinScheduler内网并进行远程办公,帮助开发人员进行远程任务调度及管理,提高工作效率。 DolphinScheduler是一款开源的分布式任务调度系统,它可以帮助开发人员更加方

    2024年02月05日
    浏览(39)
  • Spring Boot如何实现分布式系统中的服务发现和注册?

    随着互联网的快速发展,越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情况下,服务发现和注册变得尤为重要。对于分布式系统中的每个服务来说,它需要知道其他服务的位置和状态,这样才能进行通信和协作。Spring Boot提供了一些工具和框架,可以帮助我

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包