diff --git a/README.md b/README.md index 21e6fcc17388373b6f7eb1f275f8b20c1248e35a..745bb42c2394daae733e16235b91976edc90cfe4 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,9 @@ - [JWT](#jwt) - [SSO(单点登录)](#sso单点登录) - [分布式](#分布式) + - [CAP 理论](#cap-理论) + - [BASE 理论](#base-理论) + - [Paxos 算法和 Raft 算法](#paxos-算法和-raft-算法) - [搜索引擎](#搜索引擎) - [RPC](#rpc) - [API 网关](#api-网关) @@ -82,8 +85,6 @@ - [分库分表](#分库分表) - [负载均衡](#负载均衡) - [高可用](#高可用) - - [CAP 理论](#cap-理论) - - [BASE 理论](#base-理论) - [限流](#限流) - [降级](#降级) - [熔断](#熔断) @@ -263,7 +264,21 @@ ### 分布式 -[分布式相关概念入门](docs/system-design/distributed-system/分布式.md) +#### CAP 理论 + +CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。 + +关于 CAP 的详细解读请看:[《CAP理论解读》](docs/system-design/distributed-system/CAP理论.md)。 + +#### BASE 理论 + +**BASE** 是 **Basically Available(基本可用)** 、**Soft-state(软状态)** 和 **Eventually Consistent(最终一致性)** 三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。 + +关于 CAP 的详细解读请看:[《BASE理论解读》](docs/system-design/distributed-system/BASE理论.md)。 + +#### Paxos 算法和 Raft 算法 + +**Paxos 算法** 诞生于 1900 年,是一种解决分布式系统一致性的经典算法 。但是,由于 Paxos 算法非常难以理解和实现,不断有人尝试简化这一算法。到了2013年才诞生了一个比 Paxos 算法更易理解和实现的分布式一致性算法—**Raft 算法**。 #### 搜索引擎 @@ -287,6 +302,10 @@ RPC 让调用远程服务调用像调用本地方法那样简单。 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。比如数据量太大之后,往往需要对进行对数据进行分库分表,分库分表后需要有一个唯一 ID 来标识一条数据或消息,数据库的自增 ID 显然不能满足需求。相关阅读:[为什么要分布式 id ?分布式 id 生成方案有哪些?](docs/system-design/micro-service/分布式id生成方案总结.md) +#### 分布式事务 + +分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 + #### ZooKeeper > 前两篇文章可能有内容重合部分,推荐都看一遍。 @@ -338,18 +357,6 @@ RPC 让调用远程服务调用像调用本地方法那样简单。 相关阅读: **《[如何设计一个高可用系统?要考虑哪些地方?](docs/system-design/high-availability/如何设计一个高可用系统要考虑哪些地方.md)》** 。 -#### CAP 理论 - -CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。 - -关于 CAP 的详细解读请看:[《CAP理论解读》](docs/system-design/high-availability/CAP理论.md)。 - -#### BASE 理论 - -**BASE** 是 **Basically Available(基本可用)** 、**Soft-state(软状态)** 和 **Eventually Consistent(最终一致性)** 三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。 - -关于 CAP 的详细解读请看:[《BASE理论解读》](docs/system-design/high-availability/BASE理论.md)。 - #### 限流 限流是从用户访问压力的角度来考虑如何应对系统故障。 diff --git "a/docs/system-design/high-availability/BASE\347\220\206\350\256\272.md" "b/docs/system-design/distributed-system/BASE\347\220\206\350\256\272.md" similarity index 100% rename from "docs/system-design/high-availability/BASE\347\220\206\350\256\272.md" rename to "docs/system-design/distributed-system/BASE\347\220\206\350\256\272.md" diff --git "a/docs/system-design/high-availability/CAP\347\220\206\350\256\272.md" "b/docs/system-design/distributed-system/CAP\347\220\206\350\256\272.md" similarity index 100% rename from "docs/system-design/high-availability/CAP\347\220\206\350\256\272.md" rename to "docs/system-design/distributed-system/CAP\347\220\206\350\256\272.md" diff --git "a/docs/system-design/distributed-system/\345\210\206\345\270\203\345\274\217.md" "b/docs/system-design/distributed-system/\345\210\206\345\270\203\345\274\217.md" deleted file mode 100644 index 52a9d9f6665d88d73572ef8387f241d583465942..0000000000000000000000000000000000000000 --- "a/docs/system-design/distributed-system/\345\210\206\345\270\203\345\274\217.md" +++ /dev/null @@ -1,39 +0,0 @@ -### 一 分布式系统的经典基础理论 - -[分布式系统的经典基础理论](https://blog.csdn.net/qq_34337272/article/details/80444032) -本文主要是简单的介绍了三个常见的概念: **分布式系统设计理念** 、 **CAP定理** 、 **BASE理论** ,关于分布式系统的还有很多很多东西。 - -![分布式系统的经典基础理论总结](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/1639234237ec9805.png) - -### 二 分布式事务 - -分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 -- [深入理解分布式事务](http://www.codeceo.com/article/distributed-transaction.html) -- [聊聊分布式事务,再说说解决方案](https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html) - - -### 三 分布式系统一致性 - -[分布式服务化系统一致性的“最佳实干”](https://www.jianshu.com/p/1156151e20c8) - -### 四 一致性协议/算法 - -早在1900年就诞生了著名的 **Paxos经典算法** (**Zookeeper就采用了Paxos算法的近亲兄弟Zab算法**),但由于Paxos算法非常难以理解、实现、排错。所以不断有人尝试简化这一算法,直到2013年才有了重大突破:斯坦福的Diego Ongaro、John Ousterhout以易懂性为目标设计了新的一致性算法—— **Raft算法** ,并发布了对应的论文《In Search of an Understandable Consensus Algorithm》,到现在有十多种语言实现的Raft算法框架,较为出名的有以Go语言实现的Etcd,它的功能类似于Zookeeper,但采用了更为主流的Rest接口。 - -* [图解 Paxos 一致性协议](https://mp.weixin.qq.com/s?__biz=MzI0NDI0MTgyOA==&mid=2652037784&idx=1&sn=d8c4f31a9cfb49ee91d05bb374e5cdd5&chksm=f2868653c5f10f45fc4a64d15a5f4163c3e66c00ed2ad334fa93edb46671f42db6752001f6c0#rd) -* [图解分布式协议-RAFT](http://ifeve.com/raft/) -* [Zookeeper ZAB 协议分析](https://dbaplus.cn/news-141-1875-1.html) - -### 五 分布式存储 - -**分布式存储系统将数据分散存储在多台独立的设备上**。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。 - -* [分布式存储系统概要](http://witchiman.top/2017/05/05/distributed-system/) - -### 六 分布式计算 - -**所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。** -分布式网络存储技术是将数据分散的存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。 - -* [关于分布式计算的一些概念](https://blog.csdn.net/qq_34337272/article/details/80549020) -