什么是CAP定理,以及为什么您应该知道它以构建分配系统
#database #体系结构 #distributedsystems

定理捕获了由Eric Brewer计算机科学家在1998年详细阐述的定理。根据该定理,没有分布式数据库可以同时确保以下过渡:一致性,可用性和TOLON.

>

一致性是读取最新更新或错误的给定交付给定传递的每个操作。如果有1毫秒的Atrás的更新,这并不重要。

可用性是所有操作(阅读或书面)成功的属性,而没有系统返回任何错误。

对分区的耐受性是系统必须继续运行的属性,即使集群各方之间的通信是失败。

根据布鲁尔(Brewer)的说法,理解捕获的最幻想的方法是在一个(或群集)党(或集群)的相对侧的两个段落(或本能)思考。允许至少一个实例执行更新将导致党派的不一致,损害“ C”。如果一致性在分配系统中很重要,则政党的一侧必须将自己视为“必不可少的”,损害可用性(a)。因此,只有当党的双方毫无失败(24/7)损害分区toleã(p)时,才有可能同时确保一致性和可用性。总之,只有在选择数据库系统时,才有可能优先考虑这3个属性中的2个。

正如我之前说的那样,

por在1998年进行了详细阐述。自从进入以来,已经发生了很多变化,许多新技术已经出现,2012年酿酒师列出了可以通过ernãeno的理由来源:

容量的特性是小ba菜但包含的。分布式系统可以保证100%的可用性和对分区的耐受性,同时提供90%的一致性,或者确保100%分区toleã且耐受性为90%的可用性。

另一点是,随着云服务的发展,各方的管理系统变得更好,最大程度地减少了当事方之间的通信错误的发生。从理论上讲,建筑师需要优先考虑“ C”或“ A”。

另一件事是,在微服务世界中,每个产品系统都可以选择其他数据库。没有100%CA,CP或AP系统。这些不同属性的优先级可能会根据商业服务的粒度而有所不同。

也就是说,没有银色子弹来开发数据库技术的系统。有必要分析有需要的要求,以了解最重要的内容,并根据这些要求,选择最符合最符合的技术。

当然,现实生活中的系统比其他系统更优先。我想一个一个人通过,并在下面引用示例。

确定一致性(C)的系统的示例:

  • 余额和银行声明;
  • 库存管理;
  • 旅行储备;
  • 打印

确定可用性的系统示例(a):

  • 社交网络;
  • 实时的使者;
  • 监视;
  • Streaming de mídia;
  • 组成

确定划分toleã(p)的系统的示例:

  • ot;
  • 监视;
  • 云存储;
  • 实时合作。

还有数据库管理系统(SGBD)优先考虑CAP定理的两个toll属性,并且可以适合CA,CP或AP。最后,我想引用每个类别的示例。

类别:

  • oracle;
  • SQL Server;
  • PostgreSql。

cancoria cp:

  • mongodb;
  • cockleachdb;
  • faunadb。

类别AP:

  • Apache Cassandra;
  • dynamodb;
  • Apache HBase。
重要的是要指出,虽然某些SGBD优先考虑某些财产,但它们可以在其实施这些属性以及如何与财产受损的权衡平衡方面有所不同。