课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发语言,而今天我们就通过案例分析来了解一下,分布式开发都涉及那些编程理论。
1)ACID特性
在介绍CAP原则之前,我们先来看一个大家比较熟悉的概念:ACID。它是指在数据库管理系统中为了保证事务的准确可靠所具备的四个特性,分别是:
Atomciity(原子性):一个事务中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。
Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
Isolation(隔离性):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
这是本地事务(单机)需要具备的特性,但是随着互联网高速发展,性能要求、业务复杂度的提升,我们可能会对数据库进行分区,分区之后不同库会处于不同的服务器上,产生了分布式事务。如果对分布式事务也追求满足ACID特性,可能就会遇到很大的挫折。
2)CAP定理
2000年,加州大学柏克莱分校的计算机科学家埃里克·布鲁尔在当年的分布式计算原理研讨会(PODC)上提出的一个猜想:任何一个分布式系统都不可能同时满足以下三点:
一致性(Consistency):所有节点访问同一份新的数据副本。
可用性(Availability):对于非故障节点,每次请求都能获取到非错的响应——但是不保证获取的数据为新数据。
分区容错性(Partitiontolerance):当节点间出现任意数量的消息丢失或高延迟的时候,系统任然能对外提供一致性和可用性的服务。以实际效果而言,分区相当于通信的时限要求。系统如果不能在一定实现内达成数据一致性,也就意味着发生了分区的情况。
3)BASE理论
BASE理论是由eBay架构师提出的。BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网分布式系统实践的总结,是基于CAP定律逐步演化而来。它的内容如下:
基本可用(BasicallyAvailable)
软状态(Soft-state)
终一致性(EventuallyConsistency)
其核心思想是:在无法做到强一致性(会舍弃大部可用性)的情况下,应该根据每个应用自身的业务特点,采用适当的方法使系统达到终一致性,而整个过程中又可以满足系统的基本可用。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。