跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 想要学习分布式数据库应该如何入门?
未分類
30 8 月 2020

想要学习分布式数据库应该如何入门?

想要学习分布式数据库应该如何入门?

資深大佬 : black11black 18

利益相关: 在学校里没接触过相关概念,毕业后也没用过

事情是这样,我司最近几个月时间在做的一个项目后台数据规模在几十亿(不到一百亿)的水平,好在可用性需求不是特别高,我们当初开会最后决定入库还是用 oracle 硬刚。

最近在 v2 看到一些帖子提到分布式数据库的概念,以前感觉一直是个比较神秘的领域,但是最近正好借着项目机会,是不是能更容易理解概念了,心想是不是能把这部分知识学起来

主要问题就是对分布式数据库相关完全不了解,不知道概念从哪澄清,从哪入门。

分布式数据库是不是就是合理搭建以后,对外表现无限接近于传统数据库,但是可用性有明显提高这样?再加上存储也是分布在不同节点的?

大佬有話說 (22)

  • 資深大佬 : singerll

    阿里云官方的 drds 文档

  • 資深大佬 : opengps

    先搞清楚用分布式的目的:
    硬盘空间不够?
    硬盘 io 不够?
    副本容灾?

  • 資深大佬 : yulang

    我们最近正在搞分布式数据库,可以交流下

  • 資深大佬 : kidlj

    TiDB
    CockroachDB

  • 資深大佬 : sparkle2015

    PingCAP University 以及 PingCAP Talent Plan 了解一下: https://university.pingcap.com/ https://university.pingcap.com/talent-plan/ 教你学习,使用和实现分布式数据库

  • 資深大佬 : snappyone

    raft 论文走一遍,看明白了论文就全懂了

  • 資深大佬 : zoharSoul

    阿里云 drds 掏钱就行了

  • 資深大佬 : azureus

    可以了解一下腾讯开源的 tbase,分布式数据库

  • 資深大佬 : chihiro2014

    学下 6.824 和 DBMS 差不多就行了

  • 資深大佬 : TypeError

    强烈推荐“DDIA” 中文书名《数据密集型应用系统设计》

    跟着翻一遍就可以系统了解数据库和分布式系统了,
    深入的话可以跟着书中给出的论文引用走

  • 資深大佬 : laminux29

    如果你有时间,或者自己能挤出时间,并且有两三年的学习计划,建议是:

    模电 -> 数电 -> 组成 -> 汇编 -> C/C++ -> Java/C#/PHP/Python -> 操作系统 / 计算机网络 / *多媒体 -> 数据库 -> 分布式。

    之所以要这样设置,是因为,分布式主要是为了能以低成本来解决性能问题。

    性能问题,要弄彻底清楚原因,需要从模电开始。

    然后汇编、C/C++以及操作系统,能够从指令、操作、基本架构上说明单机的性能问题。

    计算机网络、数据库,这些是对分布式问题的应用。

    多媒体作为选修,如果工作有接触,可以去了解一下。

  • 主 資深大佬 : black11black

    @opengps 目的是提高可用性,以后跳槽时可以回答人家的百万并发问题

  • 主 資深大佬 : black11black

    @laminux29 神 tm 从模电开始,我本人比较孤陋寡闻,无名三本毕业的,我们学校组原也是从数电开始讲,我想听大神讲讲模电怎么影响分布式性能的?

  • 資深大佬 : labulaka521

    @laminux29 建议从造 cpu 硬盘 内存开始

  • 資深大佬 : yanyueio

    让题主从头开始修炼的也真是够了。

    分布式数据库多半就是 redis, cassandra, mongodb, hbase 这类 nosql 了,和传统数据库的百万级数据量不同,这里处理能力都在百万以上,多半是集群方式部署的。抽象来看(从外部来看)他们既可以是 source,也可以作为 sink,所以说和传统数据库用起来有啥不同,外部是感受不到的(但实际上内部是不同的,比如存储方式,核心数据模型) — 一般都会有类似传统 SQL 一样的封装 API 给你。

    但分布式数据库引入了高可用,高并发存储的同时也引入了诸如一致性问题,节点维护,通信问题,备份容灾等等,这比传统数据库的主从复制, 分表分库等要复杂一些。

    入门的话,找一个分布式数据库比如 hbase 看看就知道怎么回事儿了,其他虽然有不同但只要不离开分布式(相对的是单机),大同小异。

  • 主 資深大佬 : black11black

    @yanyueio 感谢回复,分布式都是基于 nosql 技术吗?跟想象中差别很大,几个问题,一个比如 nosql 放在内存里实际上能存的数据很少,比如我们这种百亿级的业务,一般内存扛不住。再一个是持久化储存的问题,为了防止突发情况断电丢数据,一般应该都会有一些持久化策略,但是毕竟 nosql,边际情况的可靠性如何确保呢?

  • 資深大佬 : yanyueio

    @black11black 这个要具体数据库具体分析。你问的问题已经设计到了其存储模型。首先这些 nosql 本身没有约束限制,所以存储起来要比检查约束的传统数据库快;其次,诸如列式存储的 hbase 更是如此,即并非都是行式存储。最后,nosql 并非都是 redis 这样存储在内存中的(分布式计算框架才大多都是在内存中处理),他们多半也是要落地到磁盘&文件系统,然而集群的读写,外加底层有 hdfs 等这样专门设计的文件系统,所以读写效率也是不错的,至少比传统型的 oracle 抗打(不绝对啊,你可以参考一下 ocean base 这类与 oracle 集群的对比看看是否有虚假宣传)。最后可靠性问题,这本质是集群管理的问题,比如 leader 挂了,怎么重新选举,怎么冗余备份等,具体还是要落实到各个数据库,比如 cassandra 解决方案就是无中心化架构,不分主从。一点浅见,仅供参考。

  • 資深大佬 : laminux29

    @black11black 思考一下,为什么高温会影响电脑运算速度。

    另外,提高技术水平,会受很多因素。专业学习是一方面,思想品德也很重要。

  • 資深大佬 : laminux29

    @labulaka521 CPU 和内存这种门槛太高的就不说了,说说简单一些的存储设备吧,你可以尝试举出几种你知道的存储设备类型,然后思考一下,这些存储设备,是因为怎样的需求而诞生的?

  • 資深大佬 : laminux29

    @yanyueio

    你如果觉得,我建议题主从头修炼不合适,那么,就说说你提到 nosql 与传统数据库,对于以下问题:

    1.nosql 与传统数据库,为什么会存在性能差别?

    2.既然 nosql 性能那么高,为什么很多项目选型仍然会选择传统数据库?

    3.nosql 为什么通常会采用分布式,而非单机方式来部署?

    你觉得,如果不从头修炼,他如何回答这些问题?

  • 資深大佬 : gaius

    mit 6.824 ,cmu 15-721 入门。

  • 資深大佬 : gaius

    而且确定需要 oltp ?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具