auto commit
This commit is contained in:
parent
06ab27df37
commit
d86fd4a660
@ -11,11 +11,11 @@
|
|||||||
* [使用场景](#使用场景)
|
* [使用场景](#使用场景)
|
||||||
* [实现方式](#实现方式)
|
* [实现方式](#实现方式)
|
||||||
* [五、分布式 Session](#五分布式-session)
|
* [五、分布式 Session](#五分布式-session)
|
||||||
* [粘性 Session](#粘性-session)
|
* [1. 粘性 Session](#1-粘性-session)
|
||||||
* [服务器 Session 复制](#服务器-session-复制)
|
* [2. 服务器 Session 复制](#2-服务器-session-复制)
|
||||||
* [Session 共享机制](#session-共享机制)
|
* [3. Session 共享机制](#3-session-共享机制)
|
||||||
* [Session 持久化到数据库](#session-持久化到数据库)
|
* [4. Session 持久化到数据库](#4-session-持久化到数据库)
|
||||||
* [Terracotta 实现 Session 复制](#terracotta-实现-session-复制)
|
* [5. Terracotta 实现 Session 复制](#5-terracotta-实现-session-复制)
|
||||||
* [六、分库与分表带来的分布式困境与应对之策](#六分库与分表带来的分布式困境与应对之策)
|
* [六、分库与分表带来的分布式困境与应对之策](#六分库与分表带来的分布式困境与应对之策)
|
||||||
* [事务问题](#事务问题)
|
* [事务问题](#事务问题)
|
||||||
* [查询问题](#查询问题)
|
* [查询问题](#查询问题)
|
||||||
@ -239,7 +239,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||||||
|
|
||||||
如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在 A、B 两台服务器,用户在第一次访问网站时,Nginx 通过其负载均衡机制将用户请求转发到 A 服务器,这时 A 服务器就会给用户创建一个 Session。当用户第二次发送请求时,Nginx 将其负载均衡到 B 服务器,而这时候 B 服务器并不存在 Session,所以就会将用户踢到登录页面。这将大大降低用户体验度,导致用户的流失,这种情况是项目绝不应该出现的。
|
如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在 A、B 两台服务器,用户在第一次访问网站时,Nginx 通过其负载均衡机制将用户请求转发到 A 服务器,这时 A 服务器就会给用户创建一个 Session。当用户第二次发送请求时,Nginx 将其负载均衡到 B 服务器,而这时候 B 服务器并不存在 Session,所以就会将用户踢到登录页面。这将大大降低用户体验度,导致用户的流失,这种情况是项目绝不应该出现的。
|
||||||
|
|
||||||
## 粘性 Session
|
## 1. 粘性 Session
|
||||||
|
|
||||||
### 原理
|
### 原理
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||||||
- 发生故障对客户产生的影响较小;
|
- 发生故障对客户产生的影响较小;
|
||||||
- 服务器发生故障是低概率事件。
|
- 服务器发生故障是低概率事件。
|
||||||
|
|
||||||
## 服务器 Session 复制
|
## 2. 服务器 Session 复制
|
||||||
|
|
||||||
### 原理
|
### 原理
|
||||||
|
|
||||||
@ -277,19 +277,19 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
|
|||||||
1. 设置 Tomcat 的 server.xml 开启 tomcat 集群功能。
|
1. 设置 Tomcat 的 server.xml 开启 tomcat 集群功能。
|
||||||
2. 在应用里增加信息:通知应用当前处于集群环境中,支持分布式,即在 web.xml 中添加<distributable/> 选项。
|
2. 在应用里增加信息:通知应用当前处于集群环境中,支持分布式,即在 web.xml 中添加<distributable/> 选项。
|
||||||
|
|
||||||
## Session 共享机制
|
## 3. Session 共享机制
|
||||||
|
|
||||||
使用分布式缓存方案比如 Memcached、Redis,但是要求 Memcached 或 Redis 必须是集群。
|
使用分布式缓存方案比如 Memcached、Redis,但是要求 Memcached 或 Redis 必须是集群。
|
||||||
|
|
||||||
使用 Session 共享也分两种机制,两种情况如下:
|
使用 Session 共享也分两种机制,两种情况如下:
|
||||||
|
|
||||||
### 1. 粘性 Session 共享机制
|
### 3.1 粘性 Session 共享机制
|
||||||
|
|
||||||
和粘性 Session 一样,一个用户的 Session 会绑定到一个 Tomcat 上。Memcached 只是起到备份作用。
|
和粘性 Session 一样,一个用户的 Session 会绑定到一个 Tomcat 上。Memcached 只是起到备份作用。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//93a28704-6401-4671-9758-051fadfbeb47.jpg" width="400"/> </div><br>
|
<div align="center"> <img src="../pics//93a28704-6401-4671-9758-051fadfbeb47.jpg" width="400"/> </div><br>
|
||||||
|
|
||||||
### 2. 非粘性 Session 共享机制
|
### 3.2 非粘性 Session 共享机制
|
||||||
|
|
||||||
#### 原理
|
#### 原理
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ Tomcat 本身不存储 Session,而是存入 Memcached 中。Memcached 集群
|
|||||||
|
|
||||||
用开源的 msm 插件解决 Tomcat 之间的 Session 共享:Memcached_Session_Manager(MSM)
|
用开源的 msm 插件解决 Tomcat 之间的 Session 共享:Memcached_Session_Manager(MSM)
|
||||||
|
|
||||||
## Session 持久化到数据库
|
## 4. Session 持久化到数据库
|
||||||
|
|
||||||
### 原理
|
### 原理
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ Tomcat 本身不存储 Session,而是存入 Memcached 中。Memcached 集群
|
|||||||
|
|
||||||
如果网站的访问量很大,把 Session 存储到数据库中,会对数据库造成很大压力,还需要增加额外的开销维护数据库。
|
如果网站的访问量很大,把 Session 存储到数据库中,会对数据库造成很大压力,还需要增加额外的开销维护数据库。
|
||||||
|
|
||||||
## Terracotta 实现 Session 复制
|
## 5. Terracotta 实现 Session 复制
|
||||||
|
|
||||||
### 原理
|
### 原理
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user