提交 40051867 编写于 作者: C CyC2018

auto commit

上级 82633ee3
...@@ -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.
先完成此消息的编辑!
想要评论请 注册