Skip to content

Commit a089a11

Browse files
committed
分布式部分文章优化
1 parent 57bc9e3 commit a089a11

File tree

4 files changed

+22
-20
lines changed

4 files changed

+22
-20
lines changed

MD/分布式-CAP理论.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 理论
2+
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。
3+
4+
分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:
5+
6+
* 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
7+
* 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
8+
* 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
9+
10+
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。
11+
12+
## 个人理解
13+
分区容错性是指能否对分布式系统中对数据不一致的容忍,那么在当前硬件条件下是肯定会出现不一致的情况,所以需要在一致性和可用性中进行选择。
14+
15+
如果选择一致性,则需要将数据同步更新到所有节点上,每次写操作就都要等待全部节点写成功,会导致可用性的降低。
16+
如果选择可用性,就需要将数据复制到很多个节点,需要复制的数据很多,复制的过程缓慢,会导致一致性的降低
17+
18+
BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。

MD/分布式-消息队列.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
## 消息队列
2-
消息队列是为了解决**生产和消费的速度不一致**导致的问题,有以下好处:
2+
消息队列目的:
3+
34
1. 减少请求响应时间。比如注册功能需要调用第三方接口来发短信,如果等待第三方响应可能会需要很多时间
45
2. 服务之间解耦。主服务只关心核心的流程,其他不重要的、耗费时间流程是否如何处理完成不需要知道,只通知即可
56
3. 流量削锋。对于不需要实时处理的请求来说,当并发量特别大的时候,可以先在消息队列中作缓存,然后陆续发送给对应的服务去处理
67

7-
如果想要实现一个消息队列,可以参考[这里](https://zhuanlan.zhihu.com/p/21649950)
8-
最简单的消息队列就是一个消息转发器,基本功能只有三个:消息存储、消息发送、消息删除,可使用LinkedBlockingQueue、ConcurrentLinkedQueue实现
9-
10-
对于消息队列另外一个通俗易懂的[解释](https://www.zhihu.com/question/34243607)
8+
如果想要实现一个消息队列,可以参考[这里](https://zhuanlan.zhihu.com/p/21649950)

MD/高并发.md

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

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@ PS:除开知识点,一定要准备好以下套路:
2727
* [常用的几个设计模式](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/通用基础-设计模式.md)
2828
* [从URL到看到网页的过程](http://www.wangtianyi.top/blog/2017/10/22/cong-urlkai-shi-,ding-wei-shi-jie/)
2929
### 分布式
30-
* [高并发解决思路](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/高并发.md)
31-
* [CAP理论](https://www.zhihu.com/question/54105974)
30+
* [CAP理论](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/分布式-CAP理论.md)
3231
* [](https://www.jianshu.com/p/c2b4aa7a12f1)
3332
* [事务](https://mp.weixin.qq.com/s/gg4q_53eiHCI3OUWzN7eWg)
3433
* [消息队列](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/分布式-消息队列.md)
35-
* [限流](https://crossoverjie.top/2018/04/28/sbc/sbc7-Distributed-Limit)
3634
* [ID生成方式](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/分布式-ID生成方式.md)
3735
* [四层、七层负载均衡的区别](https://www.jianshu.com/p/fa937b8e6712)
3836
* [一致性算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Consistent-Hash.md)

0 commit comments

Comments
 (0)