课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式开发是随着互联网的不断发展而逐渐被程序员掌握的一种开发方式,而今天我们就一起来了解一下,分布式开发的一些基础知识。
CAP
分布式系统中,这三个特性只能满足其中两个。
一致性(Consistency)
分布式中一致性又分强一致性和弱一致性,强一致性主浊任何时刻任何节点看到的数据都是一样的,弱一致性一**般实现的是终一致性。
可用性(Availability)
集群在任何时间内都正常使用
分区容错性(PartitionTolerance)
某一部分集群坏掉,另一部分仍能正常工作。
对于二选一模型
CA模型,在分布式系统中不存在,因为舍弃P,意味着放弃分布式系统。比如单机版本的MySQL,如果MySQL考虑主备或集群部署时,它必须考虑P
CP模型,舍弃了可用性,一定会读取到新的数据,不会读取到旧数据。一是因为消息丢失、延迟过高发生了网络分区,就影响用户的体验和业务的可用性。例如Etcd,Consul和Hbase
AP模型,舍弃了一致性,实现了服务的高可用。用户访问系统的时候,都能得到响应数据,不会出现响应错误,但会读到旧数据。比如Cassandra和DynamoDB。
ACID
一致性强,但是伸缩性差
原子性(Atomicity)
要么全部完成,要么全部失败
一致性(Consistency)
事务开始和完成时,数据必须保持一致的状态,数据库的完整性约束没有被破坏。比如A给B转账,不论转账事务是否成功,两者存款的总额不变
隔离性(Isolation)
多个事务并发访问时,事务之间是隔离的,一个事务不能影响到其他事务的结果,不能看到其他事务运行时中间某个时刻的数据。
持久性(Durability)
事务完成后,该事务对数据库所作的更改便持久地保存在数据库中,并不会被回滚
关于二阶段提交协议
二阶段提交。
分成提交请求阶段(投票阶段)和提交执行阶段(完成阶段)。
一阶段,每个参与者投票表决事务是放弃还是提交
二阶段,事务的每个参与者都执行终统一的决定
BASE
一致性弱,伸缩性强
基本可用(BasicAvailability)
分布式系统出现故障时,允许损失部分可用性,保证核心可用。
软状态(Soft-state)
允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有3个副本,允许不同节点间副本同步的延时就是软状态的体现。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。