auto commit
This commit is contained in:
parent
1366a2e149
commit
6e9e1d675e
10
notes/分布式.md
10
notes/分布式.md
|
@ -61,7 +61,7 @@ EXPIRE 指令可以为一个键值对设置一个过期时间,从而避免了
|
|||
|
||||
- 尝试从 N 个相互独立 Redis 实例获取锁,如果一个实例不可用,应该尽快尝试下一个;
|
||||
- 计算获取锁消耗的时间,只有当这个时间小于锁的过期时间,并且从大多数(N / 2 + 1)实例上获取了锁,那么就认为锁获取成功了;
|
||||
- 如果锁获取失败,会到每个实例上释放锁。
|
||||
- 如果锁获取失败,就到每个实例上释放锁。
|
||||
|
||||
## Zookeeper 的有序节点
|
||||
|
||||
|
@ -124,9 +124,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||
|
||||
## 2PC
|
||||
|
||||
两阶段提交(Two-phase Commit,2PC)
|
||||
|
||||
通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。
|
||||
两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。
|
||||
|
||||
### 1. 运行过程
|
||||
|
||||
|
@ -152,7 +150,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||
|
||||
(二)单点问题
|
||||
|
||||
协调者在 2PC 中起到非常大的作用,发生故障将会造成很大影响,特别是在阶段二发生故障,所有参与者会一直等待状态,无法完成其它操作。
|
||||
协调者在 2PC 中起到非常大的作用,发生故障将会造成很大影响。特别是在阶段二发生故障,所有参与者会一直等待状态,无法完成其它操作。
|
||||
|
||||
(三)数据不一致
|
||||
|
||||
|
@ -214,7 +212,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||
|
||||
BASE 是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)三个短语的缩写。
|
||||
|
||||
BASE 理论是对 CAP 中一致性和可用性权衡的结果,它的理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。
|
||||
BASE 理论是对 CAP 中一致性和可用性权衡的结果,它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。
|
||||
|
||||
<div align="center"> <img src="../pics//bc603930-d74d-4499-a3e7-2d740fc07f33.png"/> </div><br>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
### 1. 响应时间
|
||||
|
||||
指从某个请求发出到接收到响应消耗的时间。
|
||||
指从某个请求从发出到接收到响应消耗的时间。
|
||||
|
||||
在对响应时间进行测试时,通常采用重复请求方式,然后计算平均响应时间。
|
||||
|
||||
|
@ -79,7 +79,7 @@
|
|||
实现可扩展主要有两种方式:
|
||||
|
||||
- 使用消息队列进行解耦,应用之间通过消息传递的方式进行通信;
|
||||
- 使用分布式服务将业务和可复用的服务分离开来,业务使用分布式服务器框架调用可复用的服务。新增的产品可以用过调用可复用的服务来实现业务逻辑,对其它产品没有影响。
|
||||
- 使用分布式服务将业务和可复用的服务分离开来,业务使用分布式服务框架调用可复用的服务。新增的产品可以用过调用可复用的服务来实现业务逻辑,对其它产品没有影响。
|
||||
|
||||
# 四、可用性
|
||||
|
||||
|
|
|
@ -107,6 +107,7 @@
|
|||
* [10. 塑造模板函数](#10-塑造模板函数)
|
||||
* [11. 以委托取代继承](#11-以委托取代继承)
|
||||
* [12. 以继承取代委托](#12-以继承取代委托)
|
||||
* [重构练习](#重构练习)
|
||||
* [参考资料](#参考资料)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
|
@ -1415,6 +1416,10 @@ public Manager(String name, String id, int grade) {
|
|||
|
||||
让委托类继承受托类。
|
||||
|
||||
# 重构练习
|
||||
|
||||
- [Refactoring Kata](https://github.com/aikin/refactoring-kata)
|
||||
|
||||
# 参考资料
|
||||
|
||||
- MartinFowler, 福勒, 贝克, 等. 重构: 改善既有代码的设计 [M]. 电子工业出版社, 2011.
|
||||
|
|
Loading…
Reference in New Issue
Block a user