0 0

【急】web服务器和文件服务器分离,有什么好办法?[web老手 集群请进]10

问题:要实现的功能是:在一台网络服务器上启动了tomcat服务器,运行一个很大的网站,用户可以登录网站,然后上传文件和照片等,由于担心硬盘空间的问题,希望用户上传的文件等,能够上传并保存到另一台机器上,同时用户登录后又可以实时查看到自己之前上传的文件,并且需要保证文件和照片安全性。类似像QQ相册或新浪图片那样 http://image.sina.com.cn/2011/ffasdfa4564dsx44.jpg 这样存贮。
在网上看到网友提到以下几种方法但都只是提了一下没有稍详细的说明或解决方案。
1.
在iteye 上看到有人说“.把两台机器赋予不同的domain name,比如主机是 www.mysolution.cn, 文件服务器是photo.mysolution.cn,负责图片上传的servlet被部署在photo.mysolution.cn这台机器上,并存储图片的同时把图片的url比如http://photo.mysolution.cn/raylinn/2342S/23235da234.jpg, 写回www.mysolution.cn的数据库中”
但是这样磁盘分区怎么管理?难道不分区吗?

2.磁盘映射。解决方法和实现我找了一下还没有,求指点

3.webservice 本质和方法一一样,存在问题也一样,求解

大家一起讨论一下吧,特别是有经验的做过集群的大蛱们

问题补充:
hu437 写道
1、先说磁盘映射吧,这个一般是针对widows主机

比如现在有A、B两台服务器,A跑应用,B存储,现在将B的磁盘映射到A上面,成为X盘,这时X盘就相当于A的一个磁盘,存取文件的时候和本地磁盘上的是一样的。


具体的怎么做磁盘映射,你可以到网上搜索一下,有很多很多,这里我就不再多说

2、webservice和你说的第一条确实是类似的。

首先我们要保证文件的安全性,
如果是保证文件不被其他域使用,则可以使用你上面说的,做跨域检查

如果是希望未登录用户或者是没有权限的用户不看查看和下载,则就要对用户的登录和权限做验证,我个时候我们可以使用一个servlet来传入文件ID,然后在后台来检查用户的权限,如果有权限则返回正常的文件,如果没有权限做返回相应的提示或者返回一个空文件。

不管是1还是2一般这样存储的时候我们是不分区的


如果需要分区,则就需要使用更复杂的文件存储系统,那你可以看一下GoogleFS,这个是google的存储系统
简介:
http://hi.baidu.com/mnkee/blog/item/358b85d67116aa2207088b13.html

http://en.wikipedia.org/wiki/Google_File_System
官方:
http://labs.google.com/papers/gfs.html

磁盘映射 几个磁盘web容器如tomcat怎么管理呢? 另外的磁盘或分区不在tomcat的管理了,那样存到其它磁盘或分区里,url怎么访问?
2011年11月17日 17:13

2个答案 按时间排序 按投票排序

0 0

磁盘映射,WEB容器不管理磁盘的

磁盘映射后就相当于是一个共享磁盘


比如我现在有一个集群A、B、C三个节点,现在有一个存储服务器D,我将D的磁盘映射到A、B、C上

则在集群的三个节点上面都有一个磁盘X,就相当于将D的磁盘共享给了A、B、C,这样每个节点读取的数据都是在自己的服务器上,这个时候就和不是集群的操作是一样的了

URL读取,文件上传的信息我们要都保存到数据库里面,如文件的ID,文件的存储路径、文件的原名称等,现在可以做一个文件下载的接口(servlet),类似这样:

http://xxxx/servlet/filedown?fileId=XXXX

我根据文件id,然后查询这个文件的路径,然后在后台使用java读取这个文件,将这个文件以流的形式返回给客户端,这样就可以了




2011年11月18日 10:48
0 0

1、先说磁盘映射吧,这个一般是针对widows主机

比如现在有A、B两台服务器,A跑应用,B存储,现在将B的磁盘映射到A上面,成为X盘,这时X盘就相当于A的一个磁盘,存取文件的时候和本地磁盘上的是一样的。


具体的怎么做磁盘映射,你可以到网上搜索一下,有很多很多,这里我就不再多说

2、webservice和你说的第一条确实是类似的。

首先我们要保证文件的安全性,
如果是保证文件不被其他域使用,则可以使用你上面说的,做跨域检查

如果是希望未登录用户或者是没有权限的用户不看查看和下载,则就要对用户的登录和权限做验证,我个时候我们可以使用一个servlet来传入文件ID,然后在后台来检查用户的权限,如果有权限则返回正常的文件,如果没有权限做返回相应的提示或者返回一个空文件。

不管是1还是2一般这样存储的时候我们是不分区的


如果需要分区,则就需要使用更复杂的文件存储系统,那你可以看一下GoogleFS,这个是google的存储系统
简介:
http://hi.baidu.com/mnkee/blog/item/358b85d67116aa2207088b13.html

http://en.wikipedia.org/wiki/Google_File_System
官方:
http://labs.google.com/papers/gfs.html

2011年11月17日 19:50

相关推荐

Global site tag (gtag.js) - Google Analytics