什么是分布式session?
85个回答
2022-02-12 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
传统的应用服务器,如 tomcat、jboss等,其自身所实现的 session管理大部分都是基于单机的。对于大型分布式网站来说,支撑其业务的远远不止一台服务器,而是一个分布式集群,请求在不同服务器之间跳转。那么,如何保持服务器之间的session同步呢﹖传统网站一般通过将一部分数据存储在cookic中,来规避分布式环境下 session 的操作。这样做的弊端很多,一方面cookie的安全性一直广为诟病,另一方面cookie存储数据的大小是有限制的。随着移动互联网的发展,很多情况下还得兼顾移动端的session需求,使得采用cookie来进行session同步的方式的弊端更为凸显。分布式session正是在这种情况下应运而生的。
对于系统可靠性要求较高的用户,可以将session持久化到DB中,这样可以保证宕机时会话不易丢失,但缺点也是显而易见的,系统的整体吞吐将受到很大的影响。另一种解决方案便是将session 统一存储在缓存集群上,如 memcache,这样可以保证较高的读、写性能,这一点对于并发量大的系统来说非常重要;并且从安全性考虑,session 毕竟是有有效期的,使用缓存存储,也便于利用缓存的失效机制。使用缓存的缺点是,一旦缓存重启,里面保存的会话也就丢失了,需要用户重新建立会话。
对于系统可靠性要求较高的用户,可以将session持久化到DB中,这样可以保证宕机时会话不易丢失,但缺点也是显而易见的,系统的整体吞吐将受到很大的影响。另一种解决方案便是将session 统一存储在缓存集群上,如 memcache,这样可以保证较高的读、写性能,这一点对于并发量大的系统来说非常重要;并且从安全性考虑,session 毕竟是有有效期的,使用缓存存储,也便于利用缓存的失效机制。使用缓存的缺点是,一旦缓存重启,里面保存的会话也就丢失了,需要用户重新建立会话。
展开全部
普通网站app的session实现方案也就两种,cookie或者url参数(query string),应该没更多的了。因为http也就是个无状态协议,client不自己说清楚自己是谁,server永远是不知道的。
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通网站app的session实现方案也就两种,cookie或者url参数(query string),应该没更多的了。因为http也就是个无状态协议,client不自己说清楚自己是谁,server永远是不知道的。
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通网站app的session实现方案也就两种,cookie或者url参数(query string),应该没更多的了。因为http也就是个无状态协议,client不自己说清楚自己是谁,server永远是不知道的。
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通网站app的session实现方案也就两种,cookie或者url参数(query string),应该没更多的了。因为http也就是个无状态协议,client不自己说清楚自己是谁,server永远是不知道的。
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
至于分布式的session,你直接把session内容存到redis之类的第三方服务内就得了
其实你的标题和你的问题描述问的是两回事
一是client (browser)通过什么方式跟server端的session一一对应起来,这个跟server端如何存储session没关系
二是server端的session如何在多台服务器之间共享,这个跟cookie什么的一毛钱关系没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询