diff --git a/docs/notes/集群.md b/docs/notes/集群.md index bb57c2d5..86a31db0 100644 --- a/docs/notes/集群.md +++ b/docs/notes/集群.md @@ -33,11 +33,11 @@ 下图中,一共有 6 个客户端产生了 6 个请求,这 6 个请求按 (1, 2, 3, 4, 5, 6) 的顺序发送。(1, 3, 5) 的请求会被发送到服务器 1,(2, 4, 6) 的请求会被发送到服务器 2。 -

+

该算法比较适合每个服务器的性能差不多的场景,如果有性能存在差异的情况下,那么性能较差的服务器可能无法承担过大的负载(下图的 Server 2)。 -

+

### 2. 加权轮询(Weighted Round Robbin) @@ -45,7 +45,7 @@ 例如下图中,服务器 1 被赋予的权值为 5,服务器 2 被赋予的权值为 1,那么 (1, 2, 3, 4, 5) 请求会被发送到服务器 1,(6) 请求会被发送到服务器 2。 -

+

### 3. 最少连接(least Connections) @@ -53,13 +53,13 @@ 例如下图中,(1, 3, 5) 请求会被发送到服务器 1,但是 (1, 3) 很快就断开连接,此时只有 (5) 请求连接服务器 1;(2, 4, 6) 请求被发送到服务器 2,只有 (2) 的连接断开,此时 (6, 4) 请求连接服务器 2。该系统继续运行时,服务器 2 会承担过大的负载。 -

+

最少连接算法就是将请求发送给当前最少连接数的服务器上。 例如下图中,服务器 1 当前连接数最小,那么新到来的请求 6 就会被发送到服务器 1 上。 -

+

### 4. 加权最少连接(Weighted Least Connection) @@ -71,7 +71,7 @@ 和轮询算法类似,该算法比较适合服务器性能差不多的场景。 -

+

### 6. 源地址哈希法 (IP Hash) @@ -79,7 +79,7 @@ 可以保证同一 IP 的客户端的请求会转发到同一台服务器上,用来实现会话粘滞(Sticky Session) -

+

## 转发实现 @@ -94,7 +94,7 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服 该负载均衡转发的缺点比较明显,实际场景中很少使用它。 -

+

### 2. DNS 域名解析 @@ -110,7 +110,7 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服 大型网站基本使用了 DNS 做为第一级负载均衡手段,然后在内部使用其它方式做第二级负载均衡。也就是说,域名解析的结果为内部的负载均衡服务器 IP 地址。 -

+

### 3. 反向代理服务器 @@ -167,7 +167,7 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服 - 当服务器宕机时,将丢失该服务器上的所有 Session。 -

+

## Session Replication @@ -178,7 +178,7 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服 - 占用过多内存; - 同步过程占用网络带宽以及服务器处理器时间。 -

+

## Session Server @@ -192,7 +192,7 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服 - 需要去实现存取 Session 的代码。 -

+

参考: diff --git a/docs/pics/5effb189-d618-418b-bdda-06e6f6080c15_200.png b/docs/pics/5effb189-d618-418b-bdda-06e6f6080c15_200.png new file mode 100644 index 00000000..52d0bbb5 Binary files /dev/null and b/docs/pics/5effb189-d618-418b-bdda-06e6f6080c15_200.png differ diff --git a/docs/pics/8a182663-af78-4618-b893-96c63324a250_200.png b/docs/pics/8a182663-af78-4618-b893-96c63324a250_200.png new file mode 100644 index 00000000..bf72918b Binary files /dev/null and b/docs/pics/8a182663-af78-4618-b893-96c63324a250_200.png differ diff --git a/docs/pics/c2eae474-b43f-41ba-a3d1-b8a6a7373e54_200.png b/docs/pics/c2eae474-b43f-41ba-a3d1-b8a6a7373e54_200.png new file mode 100644 index 00000000..fb313f2a Binary files /dev/null and b/docs/pics/c2eae474-b43f-41ba-a3d1-b8a6a7373e54_200.png differ