问题描述
如下的情况: 用户上传文件的请求被APACHE分配到TOMCAT-1,并且文件被上传到TOMCAT-1所在的机器。 紧接着, 用户对文件进行编辑的请求被APACHE分配到TOMCAT-2, 此时文件并不在TOMCAT-2所在的机器上。 所以存在多TOMCAT之间对文件读写同步的问题。希望各位能明白我的意思。 各位有遇到过这种情况吗?是有什么好的解决方法?问题补充好的,谢谢,我用的就您所说的mod_jk,而且也实现了负载均衡,如果我没有F5硬件的话,那是否还有其他方式通过软件层解决上述问题尼问题补充哦...晓得咧..嘿嘿,不好意思尼..没看清,但你前面所说的,好像只是session的复制,但我所说的并不是session的同步问题,而是服务器中文件同步问题,不知是否说的对不对,请指教一二问题补充:谢谢诸位的回答,看了之后,tomcat本身是不提供这种功能的了,需要其他第三方软件才能实现这样的功能,是吗?问题补充:sticky_session=true一个客户的请求持续的往第一次为他服务过的TOMCAT送,但问题,如果该用户到了另外一台机器上访问,还能让该客户去访问第一次为他服务过的TOMCAT吗?sticky_session=true只是指同一个session,但如果换了机器,那session应该就不一样了,自然也不一定会访问他第一次为他服务器的TOMCAT了问题补充:对不起咧,我提出的问题误导了各位,正如sdh5724所说,我也打算专门有一台服务器当作文件服务器,由webserver去从文件服务器中获取文件,这样的话,对目前的需求来说没有问题的,我担心的是以后的需求可能会让文件服务器变成不止一台,而是多台,所以我考虑的找一个或自己写一个文件维护程序,用以文件的同步,最后,感谢各位的耐心帮助
解决方案
天阿。。。。。。。。。。。。。。你居然是这样的问题, 我受不了了。你应该问的是, 怎么作NFS你的问题是存储问题。 其实, 你是要多台机器共同用一个存储。 最简单的办法是, 你有一个存储, 可以mount到你的每个WEB SERVER机器上。 我不知道你的项目投资如何, 一般来说, webserver是比较忌讳放置用户数据的。 你WEBSERVER的操作系统是什么? 如果是WINDOWS我不知道, 如果是linux可以使用NFS。我建议你用一个独立的机器作存储。这样安全多了。现确定的问题吧。 你可以加我的MSN SDH5724@163。COM 我可以详细问下。
解决方案二:
sticky_session=true 会把一个客户的请求持续的往第一次为他服务过的TOMCAT送。 我觉得你应该多读读文档。
解决方案三:
听说过一个叫做NFS的东西没有?
解决方案四:
http://blog.daviesliu.net/2008/04/24/sync/
解决方案五:
你也真是的, 看清楚啊, 我给了你2种答案, F5只是一个手段之一。你只需要在你的MOD-JK负载均衡配置的地方写配置: sticky_session=truehttp://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html 说的很清楚, 你应该怎么写配置。别的方法还是有很多的, 比如, 用软件的方法实现, 也有用OS内核NET FILTER实现的。 这些太复杂了。 我们未必用的上。
解决方案六:
这个简单, 你用的是什么连接器? 你的系统有F5么?这2个问题都能为你解决问题, 这个过程叫做 Session Stick, MOD-JK是有配置选项的, 这个我猜测是用cookie是实现的。另外, F5上就更简单了, 他一定是cookie来实现的。 《不知道F5是什么, 就别追求了。 这是一种负载均衡的一个硬件》MOD-JK的设置是, sticky_session=true帮助:http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html