博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集群之session共享解决方案
阅读量:6975 次
发布时间:2019-06-27

本文共 1296 字,大约阅读时间需要 4 分钟。

集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。

 

1. 客户端cookie加密这是我以前采用的方式,简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。问题:session中数据不能太多,最好只有个用户id。参考实现:http://rollerweblogger.org/

 

2. application server的session复制可能大部分应用服务器都提供了session复制的功能来实现集群,tomcat,jboss,was都提供了这样的功能。问题:性能随着服务器增加急剧下降,而且容易引起广播风暴;session数据需要序列化,影响性能。如何序列化,可以参考 对象的序列化和反序列化.参考资料:Tomcat 5集群中的SESSION复制一Tomcat 5集群中的SESSION复制二应用服务器-JBoss 4.0.2集群指南

 

3. 使用数据库保存session使用数据库来保存session,就算服务器宕机了也没事,session照样在。问题:程序需要定制;每次请求都进行数据库读写开销不小(使用内存数据库可以提高性能,宕机就会丢失数据。可供选择的内存数据库有BerkeleyDB,Mysql的内存表);数据库是一个单点,当然可以做数据库的ha来解决这个问题。

 

4. 使用共享存储来保存session和数据库类似,就算服务器宕机了也没事,session照样在。使用nfs或windows文件共享都可以,或者专用的共享存储设备。问题:程序需要定制;频繁的进行数据的序列化和反序列化,性能是否有影响;共享存储是一个单点,这个可以通过raid来解决。

 

5. 使用memcached来保存session这种方式跟数据库类似,不过因为是内存存取的,性能自然要比数据库好多了。问题:程序需要定制,增加了工作量;存入memcached中的数据都需要序列化,效率较低;memcached服务器一死,所有session全丢。memchached能不能做HA? 我也不知道,网站上没提。参考资料:应用memcached保存session会话信息正确认识memcached的缓存失效扩展Tomcat 6.x,使用memcached存放session信息

 

6. 使用terracotta来保存session跟memcached类似,但是数据不需要序列化,并且是Find-Grained Changes,性能更好。配置对原来的应用完全透明,原有程序几乎不用做任何修改。而且terracotta本身支持HA。问题:terracotta的HA本身进行数据复制性能如何?参考资料:JVM-level clusteringTerracotta集群Tomcat实现Session同步使用Terracotta和Tomcat建立ACTIVE-PASSIVE模式的集群用Spring Web Flow和Terracotta搭建Web应用Terracotta实战示例——集群RIFE

 

转载地址:http://ahesl.baihongyu.com/

你可能感兴趣的文章
Oracle推出轻量级Java微服务框架Helidon
查看>>
腾讯云小微激活硬件生态,携合作产品正式亮相
查看>>
记TensorFlow项目开源一周年
查看>>
「镁客·请讲」1058VR钱朱平:VR泛娱乐的时代未到,不妨从更细分的行业切入
查看>>
刷新本地的DNS缓存数据
查看>>
AI、量子计算引爆硬科技创新,雷鸣、王海峰、施尧耘等北大120周年论道信科最前沿...
查看>>
为什么物联网和区块链彼此依赖?
查看>>
安卓Textview的getLineCount返回0
查看>>
Windows 2008 R2 Administrator access denied解决办法
查看>>
Faker:Python的伪造数据生成器
查看>>
(桌面虚拟化最佳实践--呼叫中心系统优化之四)瘦终端优化项目与其他优化项目...
查看>>
自学社交的人工智能,会不会有一天取人类而代之?
查看>>
centos 6.5下安装fpm打包工具
查看>>
微信的视频如何找到文件并发送到电脑
查看>>
ionic react-native和native开发移动app到底那个好
查看>>
Grid_Oracle Grid Infrastructure概念介绍(概念)
查看>>
分布式全局锁
查看>>
谈谈17年工业届三个热点词汇的个人见解
查看>>
VMware vSphere 6.5 配置文档
查看>>
LINUX学习(LINUX就该这么学)2
查看>>