在微服务下如何实现session共享

 我来答
彩虹鱼903
2018-10-12
知道答主
回答量:5
采纳率:50%
帮助的人:3940
展开全部

通过组播的方式进行集群间的共享

比如tomcat目前就具备这样的功能,优点是web容器自身支持,配置简单,适合小型网站。缺点是当一台机器的上的 session变更后会将变更的数据以组播的形式分发给集群间的所有节点,对网络和所有的web容器都是存在开销。集群越大浪费越严重。不能做到线性的扩 展。

 利用NFS等一些共享存储来共享Session数据

大致就是有一台公共的NFS服务器做共享服务器,当然也可以采用数 据库,所有的Web服务器都把session数据写到共享存储介质上,也都要来这台服务器获取session数据,通过这样的方式来实现Session数 据的共享。

相比前面组播的方式来说,网络开销较小。缺点是受制于存储设备的依赖,如果存储设备down掉,就无法工作了,要做好主备同步等一些容灾措施。 另外,当访问量过大时,磁盘的IO也是一个非常大的问题。

利用Memcache来存储共享Session数据

这可能也是目前 互联网中比较流行的一种用法。所有Web服务器都把Session写入到memcache,也都从memcache来获取。

memcache本身就是一个 分布式缓存,便于扩展。网络开销较小,几乎没有IO。性能也更好。缺点,受制于Memcache的容量(除非你有足够内存存储),如果用户量突然增多 cache由于容量的限制会将一些数据挤出缓存,另外memcache故障或重启session会完全丢失掉。

完全用cookie

将 用户的session数据全部存放在cookie中,很多大型站点都在这么干。优点是服务器架构也变得简单,每台web服务器都可以很独立。

没有网络开销 和对磁盘IO,服务器重启也不会导致数据的丢失。缺点,cookie过于庞大会耗费单位页面的下载时间,所以要尽量保持cookie的精简。

快又稳
2024-10-28 广告
当域名未绑定到虚拟主机时,网站将无法被正常访问。这通常意味着域名的DNS设置未正确指向您的服务器IP地址,或者服务器配置中未将域名与对应的虚拟主机环境关联起来。解决此问题,需登录域名管理后台,检查并修改DNS记录,确保它指向了您的服务器IP... 点击进入详情页
本回答由快又稳提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式