关于集群分布式如何同步session和文件资源的上传下载?

问题描述

关于集群分布式如何同步session和文件资源的上传下载?

问题如标题?最近项目上线 没事就想到这个问题?希望各位能够解决小弟的困惑

解决方案

一,利用数据库同步session

1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。

2,这种方法是把存放session的表和其他数据库表放在一起,如果mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。

说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担

二,利用cookie同步session

session是存放在服务器端的,cookie是存放在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。

说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。

三,利用memcache同步session

memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个”内存池”,不管是哪个服务器产生的sessoin都可以放到这个”内存池”中,其他的都可以使用。

优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。

缺点:memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。

时间: 2024-09-15 02:46:54

关于集群分布式如何同步session和文件资源的上传下载?的相关文章

如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作

原文:如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作 Phpstorm除了能直接打开localhost文件之外,还可以连接FTP,除了完成正常的数据传递任务之外,还可以进行本地文件与服务端文件的异同比较,同一文件自动匹配目录上传,下载,这些功能是平常IDE,FTP软件中少见的,而且是很耗工作时间的一个操作.换句话说,在Webstorm/Phpstorm中操作ftp能找到原来版本控制的感觉.唯一的缺点是:上传,下载的打开链接要稍费时间,适合的场景

web集群怎么共享同步session(memcache)

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一,利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上

到底什么是集群&分布式

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 对于楼主这样工作一年的菜鸟,偶尔会看到一些文章标题带有"分布式""集群"关键字,然后就懵逼了.最近对这些概念进行了一定的了解,整理了一下思路,在这里分享给各位猿友.不足之处还望纠正,感谢. 事实上,在这一年的工作中,对一些分布式和集群技术也有一些接触,只是研究得并不深入.比如分布式服务框架Dubbo.搜索引擎Elasticsearch. 概念总是抽象的,配合实例

java结合HADOOP集群文件上传下载_java

对HDFS上的文件进行上传和下载是对集群的基本操作,在<HADOOP权威指南>一书中,对文件的上传和下载都有代码的实例,但是对如何配置HADOOP客户端却是没有讲得很清楚,经过长时间的搜索和调试,总结了一下,如何配置使用集群的方法,以及自己测试可用的对集群上的文件进行操作的程序.首先,需要配置对应的环境变量: 复制代码 代码如下: hadoop_HOME="/home/work/tools/java/hadoop-client/hadoop" for f in $hadoo

360云盘如何查看同步文件夹的上传情况?

  360云盘怎么查看同步文件夹的上传情况?360云盘为广大普通网民提供了存储容量大.免费.安全.便携.稳定的跨平台文件存储.备份.传递和共享服务,用户很广泛.最近,有朋友反映,使用网盘同步本地电脑上的文件时,不知道到底同步了哪些文件,以及对正在同步的文件进行控制,比如暂停上传.删除文件等操作不了解.下面,安下小编给大家怎么查看360云盘同步文件夹的上传情况. 360云盘怎么查看同步文件夹的上传情况 点击下载: 360云盘PC客户端 首先,启动360云盘并登陆360帐号,然后点击主界面上方的"网

tomcat集群后,同步锁怎么改进?

问题描述 //获得锁对象ObjectlockObj=LockConst.getTaskLockObject(1);synchronized(lockObj){}tomcat集集后,以上代码怎么改进? 解决方案 解决方案二:你这锁和集群有什么关系?解决方案三:由于这个是针对每一个客户取数据,需要锁住,防止客户那边同时取到重复数据.解决方案四:现在用的是redis存session,//获得锁对象ObjectlockObj=LockConst.getTaskLockObject(1);synchron

weblogc 集群环境下 关于session的存储问题

问题描述 我的web应用时部署在weblogic上的,我的weblogic是工作在集群环境下的,数据库用的oracle,最近我的dba向我提了这样的问题要我解决:WehavedetectedalotofactivityonSANPRODdatabaseinstancesincethismorningDuetotheactivitythearchivelogshavebeenfillingupextremelyfast,8GBofarchivelogsweregeneratedaloneforth

was 集群时,如何处理session共享和文件共享问题

问题描述 身为菜鸟的我初始was,弄个集群不知如何处理session共享,和文件共享问题,求高手赐教,感谢! 解决方案 解决方案二:这个应该去百度,很难讲清楚.

使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hive

E-MapReduce集群sqoop组件可以同步数据库的数据到集群里,不同的数据库源网络配置有一些差异网络配置.最常用的场景是从rds mysql同步数据,最近也有用户询问如何同步云外专有Oracle数据库数据到hive.云外专有数据库需要集群所有节点通过公网访问,要创建VPC网络,使用VPC网络创建集群,给集群各节点绑定动态ip,检查网络链路,Oracle数据库还上传oracle jdbc jar.本文会详细介绍具体的操作步骤. 创建vpc专有网络集群 如果没创建过VPC专有网络和子网交换机,