Skip to content

Commit a9bb5b0

Browse files
authored
Merge pull request Snailclimb#8 from Snailclimb/master
update from remote
2 parents 14f5925 + 33a13d4 commit a9bb5b0

File tree

22 files changed

+104
-471
lines changed

22 files changed

+104
-471
lines changed

README.md

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,24 +66,25 @@
6666
- [Spring/SpringBoot](#springspringboot)
6767
- [MyBatis](#mybatis)
6868
- [Netty (必看 :+1:)](#netty-必看-1)
69+
- [ZooKeeper](#zookeeper)
6970
- [认证授权](#认证授权)
7071
- [JWT](#jwt)
7172
- [SSO(单点登录)](#sso单点登录)
7273
- [分布式](#分布式)
74+
- [CAP 理论](#cap-理论)
75+
- [BASE 理论](#base-理论)
76+
- [Paxos 算法和 Raft 算法](#paxos-算法和-raft-算法)
7377
- [搜索引擎](#搜索引擎)
7478
- [RPC](#rpc)
7579
- [API 网关](#api-网关)
7680
- [分布式 id](#分布式-id)
77-
- [ZooKeeper](#zookeeper)
7881
- [微服务](#微服务)
7982
- [高并发](#高并发)
8083
- [消息队列](#消息队列)
8184
- [读写分离](#读写分离)
8285
- [分库分表](#分库分表)
8386
- [负载均衡](#负载均衡)
8487
- [高可用](#高可用)
85-
- [CAP 理论](#cap-理论)
86-
- [BASE 理论](#base-理论)
8788
- [限流](#限流)
8889
- [降级](#降级)
8990
- [熔断](#熔断)
@@ -211,7 +212,6 @@
211212

212213
### Redis
213214

214-
1. [关于缓存的一些重要概念(Redis 前置菜)](docs/database/Redis/some-concepts-of-caching.md)
215215
2. [Redis 常见问题总结](docs/database/Redis/redis-all.md)
216216

217217
## 系统设计
@@ -248,6 +248,14 @@
248248
1. [剖析面试最常见问题之 Netty(上)](https://xiaozhuanlan.com/topic/4028536971)
249249
2. [剖析面试最常见问题之 Netty(下)](https://xiaozhuanlan.com/topic/3985146207)
250250

251+
#### ZooKeeper
252+
253+
> 前两篇文章可能有内容重合部分,推荐都看一遍。
254+
255+
1. [【入门】ZooKeeper 相关概念总结](docs/system-design/distributed-system/zookeeper/zookeeper-intro.md)
256+
2. [【进阶】ZooKeeper 相关概念总结](docs/system-design/distributed-system/zookeeper/zookeeper-plus.md)
257+
3. [【实战】ZooKeeper 实战](docs/system-design/distributed-system/zookeeper/zookeeper-in-action.md)
258+
251259
### 认证授权
252260

253261
**[《认证授权基础》](docs/system-design/authority-certification/basis-of-authority-certification.md)** 这篇文章中我会介绍认证授权常见概念: **Authentication**,**Authorization** 以及 **Cookie****Session**、Token、**OAuth 2****SSO** 。如果你不清楚这些概念的话,建议好好阅读一下这篇文章。
@@ -263,7 +271,21 @@
263271

264272
### 分布式
265273

266-
[分布式相关概念入门](docs/system-design/distributed-system/分布式.md)
274+
#### CAP 理论
275+
276+
CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。
277+
278+
关于 CAP 的详细解读请看:[《CAP理论解读》](docs/system-design/distributed-system/CAP理论.md)
279+
280+
#### BASE 理论
281+
282+
**BASE****Basically Available(基本可用)****Soft-state(软状态)****Eventually Consistent(最终一致性)** 三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。
283+
284+
关于 CAP 的详细解读请看:[《BASE理论解读》](docs/system-design/distributed-system/BASE理论.md)
285+
286+
#### Paxos 算法和 Raft 算法
287+
288+
**Paxos 算法**诞生于 1900 年,这是一种解决分布式系统一致性的经典算法 。但是,由于 Paxos 算法非常难以理解和实现,不断有人尝试简化这一算法。到了2013 年才诞生了一个比 Paxos 算法更易理解和实现的分布式一致性算法—**Raft 算法**
267289

268290
#### 搜索引擎
269291

@@ -275,6 +297,7 @@ RPC 让调用远程服务调用像调用本地方法那样简单。
275297

276298
1. [Dubbo 总结:关于 Dubbo 的重要知识点](docs/system-design/distributed-system/rpc/关于Dubbo的重要知识点.md)
277299
2. [服务之间的调用为啥不直接用 HTTP 而用 RPC?](docs/system-design/distributed-system/rpc/服务之间的调用为啥不直接用HTTP而用RPC.md)
300+
3. [一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架](https://github.com/Snailclimb/guide-rpc-framework)
278301

279302
#### API 网关
280303

@@ -287,13 +310,11 @@ RPC 让调用远程服务调用像调用本地方法那样简单。
287310

288311
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。比如数据量太大之后,往往需要对进行对数据进行分库分表,分库分表后需要有一个唯一 ID 来标识一条数据或消息,数据库的自增 ID 显然不能满足需求。相关阅读:[为什么要分布式 id ?分布式 id 生成方案有哪些?](docs/system-design/micro-service/分布式id生成方案总结.md)
289312

290-
#### ZooKeeper
313+
#### 分布式事务
291314

292-
> 前两篇文章可能有内容重合部分,推荐都看一遍。
315+
**分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。**
293316

294-
1. [【入门】ZooKeeper 相关概念总结](docs/system-design/distributed-system/zookeeper/zookeeper-intro.md)
295-
2. [【进阶】ZooKeeper 相关概念总结](docs/system-design/distributed-system/zookeeper/zookeeper-plus.md)
296-
3. [【实战】ZooKeeper 实战](docs/system-design/distributed-system/zookeeper/zookeeper-in-action.md)
317+
简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。
297318

298319
### 微服务
299320

@@ -338,18 +359,6 @@ RPC 让调用远程服务调用像调用本地方法那样简单。
338359

339360
相关阅读: **[如何设计一个高可用系统?要考虑哪些地方?](docs/system-design/high-availability/如何设计一个高可用系统要考虑哪些地方.md)**
340361

341-
#### CAP 理论
342-
343-
CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。
344-
345-
关于 CAP 的详细解读请看:[《CAP理论解读》](docs/system-design/high-availability/CAP理论.md)
346-
347-
#### BASE 理论
348-
349-
**BASE****Basically Available(基本可用)****Soft-state(软状态)****Eventually Consistent(最终一致性)** 三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。
350-
351-
关于 CAP 的详细解读请看:[《BASE理论解读》](docs/system-design/high-availability/BASE理论.md)
352-
353362
#### 限流
354363

355364
限流是从用户访问压力的角度来考虑如何应对系统故障。

docs/database/Redis/images/缓存读写策略/cache-aside-read.drawio

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
70.5 KB
Loading

docs/database/Redis/images/缓存读写策略/cache-aside-write.drawio

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
57.4 KB
Loading

docs/database/Redis/images/缓存读写策略/read-through.drawio

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
55.2 KB
Loading

docs/database/Redis/images/缓存读写策略/write-through.drawio

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
61.6 KB
Loading

docs/database/Redis/some-concepts-of-caching.md

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)