
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式系统架构在软件开发领域中是非常常见的一种架构形式,下面我们就通过案例分析来了解一下,分布式系统中不同要素的作用都有哪些。
一致性理论
当我们的单个数据库的性能产生瓶颈的时候,我们可能会对数据库进行水平分区,这里所说的分区指的是物理分区,分区之后可能不同的库就处于不同的服务器上了,这个时候单个数据库的 ACID 已经不能适应这种情况了,而在这种 ACID 的集群环境下,再想保证集群的 ACID 几乎是很难达到,或者即使能达到那么效率和性能会大幅下降,为关键的是再很难扩展新的分区了,这个时候如果再追求集群的 ACID 会导致我们的系统变得很差,这时我们就需要引入一个新的理论原则来适应这种集群的情况,就是 CAP 原则或者叫 CAP 定理
在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)3 个要素多只能同时满足两个,不可兼得。其中,分区容忍性又是不可或缺的。
一致性模型
数据的一致性模型可以分成以下 3 类:
强一致性:数据更新成功后,任意时刻所有副本中的数据都是一致的,一般采用同步的方式实现。
弱一致性:数据更新成功后,系统不承诺立即可以读到新写入的值,也不承诺具体多久之后可以读到。
终一致性:弱一致性的一种形式,数据更新成功后,系统不承诺立即可以返回新写入的值,但是保证终会返回上一次更新操作的值。
分布式事务的几个解决方案
基本所有的分布式事务都离不开2阶段提交,都是基于2阶段提交的优化。传统意义的2pc具有非常严重的局限性,体现在:
1.使用全局事务,数据被锁住的时间横跨整个事务,直到事务结束才释放,在高并发和涉及业务模块较多的情况下 对数据库的性能影响较大。
2.在技术栈比较复杂的分布式应用中,存储组件可能会不支持 XA 协议。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!