看开源程序里对session做了数据库存储,并且做了分布式,读写分类等操作,这样做的意义是什么?有哪些具体的使用场景呢?

周梦康
  • 8.9k

看开源程序里对session做了数据库存储,并且做了分布式,读写分类等操作,这样做的意义是什么?有哪些具体的使用场景呢?
因为没有实际使用过分布式,不太懂。

回复
阅读 3.3k
3 个回答
✓ 已被采纳

接着 @bill@苏生不惑 的答案说,其实两个人说的都是理由~

我只是想补充一下,之所以要独立会话的持久,为得是让应用尽可能的无状态,这样才可以更容易实现伸缩~~集中管理session,同时也可以实现业务层面的一些需求,比如单点登录,统一的认证授权等~

一旦你的应用以集群的方式部署,那么单台session服务器可能就会很快的成为瓶颈,这个时候session自然也会要求被集群化,但session具有“粘度”,所以就要加上分布式的一些技术来解决一致性,比方说事务~~

读写分离其实是对任何持久层的一种优化和保护,既然session做的是持久化状态,那么读写分离对它自然也就有效~

session共享,单点登录等什么的

  1. Session存数据库,目的是为了部署多个app应用(即web程序),为了实现负载均衡。楼上说的单点登录概念上不是很准确
  2. 数据库读写分离,为的是使数据库的压力分担到不同的服务器,可以认为是数据库的负载均衡
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏