Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
40051867
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
40051867
编写于
3月 27, 2018
作者:
C
CyC2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
82633ee3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
4 deletion
+6
-4
notes/分布式问题分析.md
notes/分布式问题分析.md
+6
-4
未找到文件。
notes/分布式问题分析.md
浏览文件 @
40051867
...
@@ -186,7 +186,9 @@ Java 提供了两种内置的锁的实现,一种是由 JVM 实现的 synchroni
...
@@ -186,7 +186,9 @@ Java 提供了两种内置的锁的实现,一种是由 JVM 实现的 synchroni
**(一)基于 MySQL 锁表**
**(一)基于 MySQL 锁表**
该实现方式完全依靠数据库唯一索引来实现。当想要获得锁时,就向数据库中插入一条记录,释放锁时就删除这条记录。如果记录具有唯一索引,就不会同时插入同一条记录。这种方式存在以下几个问题:
该实现完全依靠数据库的唯一索引。当想要获得锁时,就向数据库中插入一条记录,释放锁时就删除这条记录。如果记录具有唯一索引,就不会同时插入同一条记录。
这种方式存在以下几个问题:
1.
锁没有失效时间,解锁失败会导致死锁,其他线程无法再获得锁。
1.
锁没有失效时间,解锁失败会导致死锁,其他线程无法再获得锁。
2.
只能是非阻塞锁,插入失败直接就报错了,无法重试。
2.
只能是非阻塞锁,插入失败直接就报错了,无法重试。
...
@@ -245,11 +247,11 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
...
@@ -245,11 +247,11 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
**(六)羊群效应**
**(六)羊群效应**
在步骤二,一个节点未获得锁,需要监听监听自己的前一个子节点,这是因为如果监听所有的子节点,那么任意一个子节点状态改变,其它所有子节点都会收到通知
,而我们只希望它的下
一个子节点收到通知。
在步骤二,一个节点未获得锁,需要监听监听自己的前一个子节点,这是因为如果监听所有的子节点,那么任意一个子节点状态改变,其它所有子节点都会收到通知
(羊群效应),而我们只希望它的后
一个子节点收到通知。
# 五、分布式 Session
# 五、分布式 Session
在分布式场景下,一个用户的 Session 如果只存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器上,该服务器没有
保存
用户的 Session,就可能导致用户需要重新进行登录等操作。
在分布式场景下,一个用户的 Session 如果只存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器上,该服务器没有用户的 Session,就可能导致用户需要重新进行登录等操作。
<div
align=
"center"
>
<img
src=
"../pics//cookiedata.png"
/>
</div><br>
<div
align=
"center"
>
<img
src=
"../pics//cookiedata.png"
/>
</div><br>
...
@@ -305,7 +307,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
...
@@ -305,7 +307,7 @@ Zookeeper 提供了一种树形结构级的命名空间,/app1/p_1 节点表示
-
[
负载均衡算法及手段
](
https://segmentfault.com/a/1190000004492447
)
-
[
负载均衡算法及手段
](
https://segmentfault.com/a/1190000004492447
)
-
[
Redirection and Load Balancing
](
http://slideplayer.com/slide/6599069/#
)
-
[
Redirection and Load Balancing
](
http://slideplayer.com/slide/6599069/#
)
-
[
Session Management using Spring Session with JDBC DataStore
](
https://sivalabs.in/2018/02/session-management-using-spring-session-jdbc-datastore/
)
-
[
Session Management using Spring Session with JDBC DataStore
](
https://sivalabs.in/2018/02/session-management-using-spring-session-jdbc-datastore/
)
-
[
Apache Wicket User Guide - Reference Documentation
](
#
Apache Wicket User Guide - Reference Documentation
)
-
[
Apache Wicket User Guide - Reference Documentation
](
https://ci.apache.org/projects/wicket/guide/6.x/
)
-
[
集群/分布式环境下 5 种 Session 处理策略
](
http://blog.csdn.net/u010028869/article/details/50773174?ref=myread
)
-
[
集群/分布式环境下 5 种 Session 处理策略
](
http://blog.csdn.net/u010028869/article/details/50773174?ref=myread
)
-
[
浅谈分布式锁
](
http://www.linkedkeeper.com/detail/blog.action?bid=1023
)
-
[
浅谈分布式锁
](
http://www.linkedkeeper.com/detail/blog.action?bid=1023
)
-
[
深入理解分布式事务
](
https://juejin.im/entry/577c6f220a2b5800573492be
)
-
[
深入理解分布式事务
](
https://juejin.im/entry/577c6f220a2b5800573492be
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录