学习分布式数据库的一点建议
最近陆陆续续在后台看到一些关于分布式数据库的留言,讨论热度确实挺高,我也忍不住来说两句。
想到在去年 5 月 20 日,数据库“世界杯”TPC-C 公布,支付宝自研分布式数据库 OceanBase,获得 7.07 亿 tpmC 的超高性能得分,较去年提升了整整近 11 倍,再次超越 Oracle ,刷新世界纪录。
这个消息在当时无疑是让人震惊的,这意味着 OceanBase 可能成为全球最快的数据库,要知道一直以来,TPC-C 榜单都是老牌巨头在竞争,长期被 Oracle、微软和 IBM 为首的数据库厂商和硬件厂商霸榜。
但可能有些人会疑惑,分布式数据库到底是什么?为什么这么强大?它解决了什么问题?怎么突然就火了?
原因很简单,就是性能和可靠性。传统数据库,虽然能够将部分读负载分流到备机,但主要负载还在主机上。所以,早期的方案都是选择性能和可靠性更好的专用设备来做主机,比如 IBM 大型机。
但这有两个问题,一是大型机的技术体系封闭,和主流技术栈渐行渐远,甚至这些厂商自己的工程师都后继无人。二是,因为技术垄断,价格相当昂贵。多数普通企业都难以承受,而且,这少数的厂商都是国外的巨头IBM、HP等等。
所以,今天,IBM 大型机这样的专用设备已经不再是多数企业的可选项,而采用 x86 架构的通用设备在单机性能和可靠性上都不能满足要求,因此分布式架构就成为了一个必然的选择。
正是分布式数据库的这些优点,近几年,阿里、腾讯、字节跳动、美团等互联网巨头,以及传统金融、商业银行、电信行业等都已经开始使用,可以说,分布式数据库已经成为一种技术潮流,甚至是新基建的一部分。
比如,除了 OceanBase 现在每年双十一大促都要秀一下性能之外;还有 TiDB 在努力培育市场,技术社区做得有声有色;GoldenDB 已经随着中信银行的新一代核心业务系统上线投产,目前也在平稳运行;其他分布式数据库包括 CockroachDB、YugabyteDB、TBase...等更多产品,可以说是百花齐放了。
除了庞大的市场需求,一个普通的程序员,为什么要学习分布式数据库?在我看来,最重要的是可以通过学习它的设计思想,提高自己的架构设计水平和代码能力。分布式数据库是学术研究与工业实践的完美结合,深入其中你会看到很多极致的设计方法,这将为你进阶架构师铺平道路。
有什么办法,能学明白分布式数据库呢?
很多人可能会觉得,作为“分布式”和“数据库”的跨学科产物,它在事务、原子性、隔离性等概念复杂;而且主流产品众多,该怎么做技术选型也很令人头疼。
确实如此,所以我也一直在网上找资料,但都非常零散,直到我前段时间看完了极客时间王磊的专栏《分布式数据库30讲》,我还挺满意的。
这个专栏从大家比较熟悉的单体数据库出发,对比学习,剖析了主流产品的运行机制和理论依据,横向比较它们的差异,分析这些技术决策背后的动机,能帮你快速建立起对分布式数据库全面的认知体系。
👆扫我的二维码,免费试读
结算用口令「Happy2021」,再减 ¥10
到手 ¥69,仅限「前 500 人」有效
说到作者王磊,我想简单介绍一下。他现在是光大银行首席数据架构师,前 IBM 咨询顾问。在数据领域有超过 15 年的工作经验,2013 年,他推动了光大银行从传统数据仓库向大数据生态的转型,主导了大数据开发平台、数据中台等多个重要系统的架构设计工作,是大数据技术在金融行业的第一批践行者。
讲真,我还是非常喜欢这个专栏的。因为我从他的经验中,在架构设计上获得更多的启发。可能有很多朋友还是不知道该怎么学,不过,用老师自己的话说就是,学习的关键字在于:找出分布式数据库的学习路径,抓住它的核心内容。
那怎么找到这条学习路径呢,这就得从数据库说起了。一个基本运行的数据库要做好五件事,存储、事务、查询、复制和其他。对分布式数据库来说,不仅要继续做这五件事,还要多出一件事,分片。在这六件事中,存储和其他这两件事与单体数据库差不多,难点就在事务、查询、复制和分片这四件。
分享王磊梳理的一个「分布式数据库学习要点图」,可以帮你避免一下子就陷入安装部署、操作指令等细节中,摆脱学完以后还是不知道产品原理、碰到没见过的问题依然是束手无策的窘境,需要的同学可以保存下来看看。
我来讲讲这门专栏是如何讲解分布式数据库的吧?这个专栏可以说非常系统了,总共分为 3 个方面:
夯实基础,建立整体认知
概念篇:顾名思义,主要介绍分布式数据库的基本概念、主流产品的架构框架和一些基本功能,以及分布式数据库设计的难点。
从问题到解决方案,再到产品实现
开发篇:会和你从分布式事务、跨节点查询、单体数据库的特性这三个维度出发,带你深入到一个个关键功能的设计中,挖掘其背后可选择的理论设计方案,分析方案之间的差异,以及工业界产品在方案落地实现时的改进。
选型实践 + 产品图鉴
实践篇:会聚焦于架构选型,告诉你在企业中引入分布式数据库需要关注哪些事情、做些什么准备,比如会给运维带来哪些冲击、怎么去做测试,基于什么原因你要选择哪些分布式数据库。最终,为你梳理一份分布式数据库产品图鉴,带你一起检阅这个时代最酷的基础软件。
来看看目录,你可以找到你想要的👇
订阅福利
👇扫我的二维码,免费试读
结算用口令「Happy2021」,再减 ¥10
到手 ¥69,仅限「前 100 人」有效
走心的努力,才算真的努力。2 杯奶茶的价格,拿下这套分布式数据库方法论,值了👇