原创转载请注明出处:http://agilestyle.iteye.com/blog/2344826
分布式系统的特性
在分布式系统中,同时满足“CAP定律”中的“一致性”、“可用性”和“分区容错性”三者是不可能的,这比现实中找对象需同时满足“高、富、帅”或“白、富、美”更加困难。在互联网领域的绝大多数的场景,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。
需要明确的一点是,对于一个分布式系统而言,分区容错性可以说是一个最基本的要求。因为既然是一个分布式系统,那么分布式系统中的组件必然需要被部署到不同的节点,否则也就无所谓分布式系统了,因此必然出现子网络。而对于分布式系统而言,网络问题又是一个必定会出现的异常情况,因此分区容错性也就成为了一个分布式系统必然需要面对和解决的问题。因此系统架构师往往需要把精力花在如何根据业务特点在C(一致性)和A(可用性)之间寻求平衡。
BASE理论
BASE是 Basically Available(基本可用)、Soft state(软状态)、Eventually consistent(最终一致性)三个 短语的简写。BASE是对CAP中一致性和可用性权衡的结果,其来源于大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventually consistency)。
基本可用
弱状态
最终一致性
总的说来,BASE理论面向的是大型高可用可扩展的分布式系统,和传统的ACID特性是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。但同时,在实际的分布式场景中,不同业务单元和组件对数据一致性的要求是不同的,因此在具体的分布式系统架构设计中,ACID特性与BASE理论往往又会结合在一起使用。
NoSQL按数据模型存储性质 分4类
- 键值存储(Key-Value stores) —— Redis(适合Session信息、用户配置信息、购物车数据)
- 面向表(Table-oriented) —— BigTable、Cassandra、HBase(适合事件记录、CMS、博客平台、计数器、不适合ACID、查询模式变化频繁的场合)
- 面向文本(Document-oriented) —— MongoDB(适合事件记录、CMS、博客平台、网站分析、实时分析、电子商务应用)
- 面向图(Graph-oriented) —— Neo4j(适合互联网数据,推荐引擎,基于位置的服务)
Note:
与传统的关系型数据库相比,HBase有更好的伸缩能力,跟适合海量数据的存储和处理,并且HBase能够支持多个Region Server的写入,并发写入性能十分出色。但是HBase本身所支持的查询维度有限,难以支持复杂的条件查询,如group by、order by、join等,这些特点是它的应用场景受到了限制。
对于Redis来说,它拥有更好的读写吞吐能力,能够支撑更高的并发数,而相较于其他的key-value类型的数据库,Redis能够提供更为丰富的数据类型支持,能更灵活地满足业务需求。
Reference
http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency
从PAXOS到ZOOKEEPER分布式一致性原理与实践 —— 倪超 著
相关推荐
8. **分布式系统特性**: - 分布式系统的特点包括并发性、无全局时钟、故障独立性等。这些问题导致了设计上的挑战,如如何处理时序、一致性等问题。 9. **系统设计**: - 分布式文件系统如GFS提供了平面文件服务...
实验报告中提到的关键源代码可能是实现上述分布式系统特性的实例,例如: 1. RPC框架的客户端和服务器端代码,展示了请求和响应的交互过程。 2. 负载均衡器的实现,可能包含调度算法的代码片段。 3. 一致性算法的...
透明性是分布式系统的关键特性之一,它指的是系统的某些属性对用户或客户端程序来说是不可见的,使得用户在使用系统时感觉不到系统的分布式特性。分布式系统的透明性具体可以分为几种类型:访问透明、位置透明、移植...
这些方法在描述不同方面和层次的分布式系统特性方面各有优势,设计者可以根据具体需求灵活选择适合的方法。 综上所述,分层形式化描述方法的提出,不仅为分布式系统的开发者提供了新的设计和验证手段,还通过精确的...
2. **CAP理论**:分布式系统设计的核心原则之一是CAP定理,它指出一个分布式系统不能同时满足一致性、可用性和分区容错性这三个特性。理解和权衡这三者在实际系统设计中的重要性是至关重要的。 3. **Paxos算法**:...
分布式系统可伸缩性是衡量一个系统在面对不断增长的工作负载或资源变化时,能否保持其性能和功能稳定性的重要指标。陈斌等人的研究综述深入探讨了这一关键概念,指出可伸缩性不仅涉及系统的基本性能,还与资源管理和...
3. **ACID特性**:在事务处理中,分布式系统通常需要遵循原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)原则,以确保数据的一致性。 4. **BASE理论**:在网络分区或故障...
在分布式系统中,透明性、开放性、互操作性、可移植性和可扩展性是其核心特征,而中间件技术则是实现这些特性的关键。 1. 中间件技术 分布式系统通过中间件将异构的硬件和软件资源整合起来,为用户提供单一系统的...
分布式系统的关键特性包括并发性、位置透明性、容错性和可扩展性。 1.2 分布式系统的发展历史 分布式系统的发展起源于20世纪70年代,随着网络技术的进步,逐渐成为解决大规模计算问题的有效手段。近年来,随着...
**1.2 分布式系统定义及特性** - **定义**:分布式系统是由多台通过网络互联的计算机组成的系统,这些计算机可以相互协作完成特定任务。 - **并发性**:分布式系统中多个进程并发执行,需要解决资源共享问题。 - **...
CAP定理指出,分布式系统不能同时满足一致性、可用性和分区容错性这三个特性。常见的数据一致性模型包括ACID(原子性、一致性、隔离性、持久性)和BASE(基本可用、软状态、最终一致性),我们需要根据业务场景来...
在学习这本教材时,首先会接触到的是分布式系统的定义和基本特性,包括并发性、透明性、容错性和性能优化等。并发性是指系统中的多个组件同时执行任务,这需要对线程和进程有深入理解。透明性则是指用户在使用分布式...
1. **分布式系统定义与特性**:分布式系统是由多台计算机和硬件设备组成,它们通过网络互相连接并共享资源,协同工作。其主要特性包括透明性、可靠性、可扩展性和性能优化。 2. **一致性模型**:在分布式环境中,...
分布式系统的核心特性包括透明性、一致性、可用性、分区容错性和最终一致性。 2. **CAP理论**:描述了在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)这三个...
分布式系统是一种由多个计算机节点组成的系统,这些节点通过网络相互连接,共同协作完成特定任务。由于其具有高度的可扩展性、容错性和模块化特性,它在处理大规模数据和提供高可用性服务方面表现出色。分布式系统的...
南京大学2019年分布式系统期末复习资料重点强调了分布式系统的基本概念、目标和特性,以及不同类型的分布式系统和架构风格。 分布式系统的核心目标是实现透明性和开放性。透明性包括访问透明性(隐藏数据表示和访问...
- 分布式系统的特性:透明性、高可用性、容错性、可扩展性和性能优化。 - 比较集中式和分布式系统的优缺点。 2. **第二章:网络基础** - OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和...