简述漫衍式数据存储

数据是本日的基本! 它支持从你最喜欢的猫咪视频到天天产生的数十亿金融生意业务的一切。这一切的焦点是漫衍式数据存储。

在这篇文章中,我们将进修什么是漫衍式数据存储,为什么我们需要它,以及如何有效地利用它。本文旨在辅佐你开拓应用措施,因此我们将只涉及应用措施开拓人员需要知道的内容。这包罗须要的基本,开拓人员碰着的常见陷阱,以及差异的漫衍式数据存储之间的区别。

这篇文章不需要任何漫衍式系统常识! 编程和数据库履历会有辅佐,但你也可以在我们碰着问题时直接查找主题。让我们开始吧!

一、什么是漫衍式数据存储?

漫衍式数据存储是一个在多台呆板上存储和处理惩罚数据的系统。

作为一个开拓者,你可以把漫衍式数据存储看作是你存储和检索应用措施数据、指标、日志等的方法。你大概熟悉的一些风行的漫衍式数据存储是MongoDB,亚马逊网络处事(AWS)的S3,以及谷歌云平台的Spanner。

在实践中,有很多种漫衍式数据存储。它们凡是是由云提供商打点的处事或你本身陈设的产物。你也可以从新开始或在其他数据存储的基本上成立你本身的数据存储。

二、我们为什么需要它?

为什么不直接利用单机数据存储?为了真正领略,我们首先需要认识到本日数据的局限和普遍性。让我们看看一些详细的数字。

- 2018年,Steam的最高并发用户数为1850万,陈设了拥有2.7PB固态硬盘的处事器,并向用户提供了15艾字节的数据¹。

- 纳斯达克在2020年单日摄取了1130亿笔记录的峰值,比两年前的平均300亿条有所扩大²。

- 谷物公司凯洛格(Kellogg's)在2014年每周仅模仿促销勾当就处理惩罚了16TB的数据³。

说实话,我们利用的数据之多令人难以置信。这些字节中的每一个都被仔细地储存和处理惩罚在某个处所。这个处所就是我们的漫衍式数据存储。

单机数据存储基础无法支持这些需求。因此,我们利用漫衍式数据存储,在机能、可扩展性和靠得住性方面具有要害优势。让我们相识一下这些优势在实践中的真正寄义。

机能、可扩展性和靠得住性

机能是指一台呆板能多好地完成事情。

机能是至关重要的。有无数的研究量化并显示了短至100毫秒的延迟对业务的影响。迟钝的响应时间不只使人们感想沮丧--它们使流量、销售和最终收入下降。

幸运的是,我们确实可以节制我们应用措施的机能。在单机数据存储的环境下,简朴地进级到一个更快的呆板往往就足够了。假如这还不足,可能你依赖于一个漫衍式数据存储,那么其他形式的可扩展性就会发挥浸染。

可扩展性是指增加或淘汰基本设施资源的本领。

本日的应用措施常常经验快速增长和周期性的利用模式。为了满意这些负载要求,我们 "扩展 "我们的漫衍式数据存储。这意味着,我们按照需要提供更多或更少的资源。可扩展性有两种形式。

- 横向扩展意味着添加或删除计较机(也称为呆板或节点)。

- 垂直扩展意味着改变呆板的CPU、RAM、存储容量或其他硬件。

横向扩展是漫衍式数据存储可以或许胜过单机数据存储的原因。通过将事情分手到数百台计较机上,总体系统具有更高的机能和靠得住性。固然漫衍式数据存储主要依靠程度扩展,但垂直扩展也被团结利用,以优化整体机能和本钱⁶。

缩放存在于从手动到完全打点的范畴内。有些产物具有手动扩展成果,您可以自行设置特另外容量。其他产物则按照剩余存储容量等指标举办自动缩放。最后,有些处事会处理惩罚所有的扩展,而开拓者甚至不需要思量这个问题,譬喻亚马逊网络处事(AWS)的S3。

不管是哪种要领,所有的处事都有一些不能增加的限制,好比最大工具的巨细。你可以查抄文档中的配额,看看这些硬性限制。你可以查抄网上的基准,看看在实践中可以到达什么机能。

靠得住性是指无妨碍的概率⁷。

有些应用对我们的糊口很是要害,甚至几秒钟的妨碍都是不行接管的。这些应用不能利用单机数据存储,因为不行制止的硬件和网络妨碍会影响整个处事。相反,我们利用漫衍式数据存储,因为它们可以适应单个计较机或网络路径的妨碍。

要做到高度靠得住,一个系统必需同时具有可用性和容错性。

- 可用性是指一个处事可以达到并正常响应请求的时间百分比。

- 容错性是指容忍硬件和软件妨碍的本领。完全容错是不行能的¹⁰。

尽量可用性和容错性一开始大概看起来很相似,但它们实际上是完全差异的。让我们看看假如你有一个但没有另一个会产生什么。

- 可用但不容错。思量一个每分钟都产生妨碍但在几毫秒内规复的系统。用户可以会见处事,但恒久运行的事情却没有足够的时间来完成。