diff --git a/notes/分布式问题分析.md b/notes/分布式问题分析.md
index 5862ca48..15e9f80e 100644
--- a/notes/分布式问题分析.md
+++ b/notes/分布式问题分析.md
@@ -128,37 +128,49 @@
## 实现
-### 1. DNS 解析
-
-使用 DNS 作为负载均衡器,根据负载情况返回不同服务器的 IP 地址。大型网站基本使用了这种方式最为第一级负载均衡手段,然后在内部使用其它方式做第二级负载均衡。
-
-
-
-### 2. 修改 MAC 地址
-
-使用 LVS(Linux Virtual Server)这种链路层负载均衡器,根据负载情况修改请求的 MAC 地址。
-
-
-
-### 3. 修改 IP 地址
-
-在网络层修改请求的目的 IP 地址。
-
-
-
-### 4. HTTP 重定向
+### 1. HTTP 重定向
HTTP 重定向负载均衡服务器收到 HTTP 请求之后会返回服务器的地址,并将该地址写入 HTTP 重定向响应中返回给浏览器,浏览器收到后需要再次发送请求。
-
+缺点:
-### 5. 反向代理
+- 用户访问的延迟会增加;
+- 如果负载均衡器宕机,就无法访问该站点。
-正向代理:发生在客户端,是由用户主动发起的。比如翻墙,客户端通过主动访问代理服务器,让代理服务器获得需要的外网数据,然后转发回客户端。
+
-反向代理:发生在服务器端,用户不知道代理的存在。
+### 2. DNS 重定向
-
+使用 DNS 作为负载均衡器,根据负载情况返回不同服务器的 IP 地址。大型网站基本使用了这种方式做为第一级负载均衡手段,然后在内部使用其它方式做第二级负载均衡。
+
+缺点:
+
+- DNS 查找表可能会被客户端缓存起来,那么之后的所有请求都会被重定向到同一个服务器。
+
+
+
+### 3. 修改 MAC 地址
+
+使用 LVS(Linux Virtual Server)这种链路层负载均衡器,根据负载情况修改请求的 MAC 地址。
+
+
+
+### 4. 修改 IP 地址
+
+在网络层修改请求的目的 IP 地址。
+
+
+
+### 5. 代理自动配置
+
+正向代理与反向代理的区别:
+
+- 正向代理:发生在客户端,是由用户主动发起的。比如翻墙,客户端通过主动访问代理服务器,让代理服务器获得需要的外网数据,然后转发回客户端。
+- 反向代理:发生在服务器端,用户不知道代理的存在。
+
+PAC 服务器是用来判断一个请求是否要经过代理。
+
+
# 四、分布式锁
@@ -353,6 +365,7 @@ Terracotta 的基本原理是对于集群间共享的数据,当在一个节点
- [Comparing Load Balancing Algorithms](http://www.jscape.com/blog/load-balancing-algorithms)
- [负载均衡算法及手段](https://segmentfault.com/a/1190000004492447)
+- [Redirection and Load Balancing](http://slideplayer.com/slide/6599069/#)
- [集群/分布式环境下 5 种 Session 处理策略](http://blog.csdn.net/u010028869/article/details/50773174?ref=myread)
- [浅谈分布式锁](http://www.linkedkeeper.com/detail/blog.action?bid=1023)
- [深入理解分布式事务](https://juejin.im/entry/577c6f220a2b5800573492be)
diff --git a/pics/10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png b/pics/10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png
new file mode 100644
index 00000000..cb78d856
Binary files /dev/null and b/pics/10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png differ
diff --git a/pics/265a355d-aead-48aa-b455-f33b62fe729f.png b/pics/265a355d-aead-48aa-b455-f33b62fe729f.png
new file mode 100644
index 00000000..bb564f6e
Binary files /dev/null and b/pics/265a355d-aead-48aa-b455-f33b62fe729f.png differ
diff --git a/pics/52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg b/pics/52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg
new file mode 100644
index 00000000..809abead
Binary files /dev/null and b/pics/52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg differ
diff --git a/pics/f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png b/pics/f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png
new file mode 100644
index 00000000..8f797bdf
Binary files /dev/null and b/pics/f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png differ
diff --git a/pics/f8b16d1e-7363-4544-94d6-4939fdf849dc.png b/pics/f8b16d1e-7363-4544-94d6-4939fdf849dc.png
new file mode 100644
index 00000000..300b6e06
Binary files /dev/null and b/pics/f8b16d1e-7363-4544-94d6-4939fdf849dc.png differ