分布式系统和CAP原理

电脑杂谈  发布时间:2020-07-05 12:20:35  来源:网络整理

分布式计算原理是什么_分布式云计算_云计算和分布式

首先,什么是分布式系统?

关于分布式系统的定义,“分布式系统原理和范例”对分布式系统的定义如下: “分布式系统是独立计算机的集合,就像用户的单系统一样. ”

云计算和分布式_分布式计算原理是什么_分布式云计算

(图片选自“分布式系统的通用技术和案例分析”)

设计分布式系统需要许多注意事项. 例如,系统如何拆分子系统?如何计划子系统中的通讯?通讯安全吗?系统可扩展吗?子系统如何实现可靠性?如何保证数据的一致性?等等,这不是一个好的解决方案. 但是对于我们的普通用户而言,开源世界已经拥有完善的解决方案和工具. 例如,在设计通信时,我们可以使用面向消息的中间件,例如Apache ActiveMQ,RabbitMQ,Apache RocketMQ,Apache Kafka等. 还有类似于Google Protocol Buffer和Thrift的RPC框架. 在设计分布式计算时,我们可以使用MapReduce,Apache Hadoop,Apache Spark,Apache Flink等进行分布式计算. 在大数据的分布式存储方面,我们可以选择HDFS,Apache HBase,Apache Cassandra,Memcached,Redis,MongoDB等. 在分布式监视方面,常用的技术包括Nagios,Zabbix,Consul,ZooKeeper等.

第二,对CAP有一点了解

2000年7月,加利福尼亚大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出了CAP猜想. 两年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP. 此后,CAP理论正式成为分布式计算领域的公认定理.

云计算和分布式_分布式计算原理是什么_分布式云计算

首先让我们看看CAP代表什么?

一致性: 更新操作成功并返回到客户端后,所有分布式节点在同一时间的数据是完全一致的. (注意: 这是关于高度一致性. )

分布式计算原理是什么_云计算和分布式_分布式云计算

可用性: 读取和写入操作均成功. 在任何时候都可以在有效时间内返回用户的请求.

分区容错: 当网络出现故障并且分布式节点无法相互通信时,系统能否继续服务

应该注意的是,在分布式系统中,没有单一的设计可以同时满足一致性分布式计算原理是什么分布式计算原理是什么,可用性和分区容错的三个特征. 这三个CAP并不相等,其中P是基础,而CA需要先权衡.

如果Spanner有什么特别之处,那就是Google的WAN. Google通过建立专用网络和强大的网络工程能力来保证P. 基于多年的运营改进,它可以最大程度地减少生产环境中分区的出现并实现高可用性. CAP之父在文章“ Spanner,Real Time,CAP Theory”中写道

云计算和分布式_分布式计算原理是什么_分布式云计算

在全球广域地理分布环境(全球规模的分布式系统)中,网络分区是一个自然的事实,甚至有人认为这是不可避免的. (用来解释为什么P是基数. )

上述一致性可以分为几类: 强一致性,单调一致性,弱一致性,会话一致性和最终一致性.

|一致性强|任何时候,任何用户都可以读取最近一次成功更新的数据. | | --- | --- | 单调一致性在任何时候,任何用户都将在某个更新后一次读取某个数据的值,而不会读取早于该值的值. 换句话说,可用数据的顺序必须单调增加. | 一致性弱|用户在一定时间内无法读取最新的更新值. | 会话一致性|一旦用户在会话中进行了某些更新后读取了某个数据的值,则在该会话中,它将不会读取早于该值的值,会话是一致的. 性是在单调一致性的基础上进一步放松约束,仅用于确保单个用户的单个会话内的单调性,并且不能保证不同用户之间或同一用户的不同会话之间的单调性. | 最终一致性用户只能读取更新后的值,但是系统保证数据最终将达到完全一致的状态,但是无法保证所需的时间. |

三,总结

如本文开头所述,开源世界现在拥有完整的分布式系统解决方案. 我们不需要重新发明轮子,困难可以想象. 我们可以推断出该系统在使用过程中符合CAP的哪些两个特征. 例如: Zoopper是CP,P是基本. 所有分配系统都需要对此给予优先考虑. Zookeeper通过顺序一致性,原子性,单个镜像,持久性和实时性确保数据一致性. 但是,在某些情况下(重新启动或网络节点故障),它将重新选择Leader,此时整个群集将不可用. 问题是组长选举时间过长,大约30〜120s,选举过程中整个zk集群都不可用,导致选举过程中注册服务瘫痪. 尽管最终可以恢复该服务,但是由于长时间的选择而导致的注册是长期无法使用的. 因此,ZooKeeper无法保证服务的可用性. 所以Zookepper保证CP,而不是AP.

本文仅简要介绍分布式系统的概念和CAP理论的初步探索,这可以帮助我们更好地了解分布式框架在实践中的应用场景. 有关更深入的内容,您可以参考本文末尾的参考资料和扩展链接. 欢迎大家一起交流〜

参考** waylau.com/talk-about-distributed-system/ github.com/waylau/distributed-systems-technologies-and-cases-analysis blog.csdn.net/qq_26222859/article/details/53079655博客. csdn.net/yanpenglei/article/details/80362561


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-269332-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...