浏览 4488 次
锁定老帖子 主题:上传图片,如何请求转发到动态ip的服务器上
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-12-16
通过网页或者手机通过http post上传一个图片,后台servlet接收到该HttpServletRequest实例后,根据一个工具类算法获取到处理给请求的服务器ip,然后将这个http request发送给该ip的服务器。 然后由该ip的服务器获取到网页或者手机上传的图片,存储到该服务器的本地磁盘上。 请问该怎样实现请求的转发呢? 我曾经考虑过使用jsp的forward,但forward只能转发到当前的servlet容器,而不能转发到其他ip的servlet. 我也考虑到用httpclient,但网上查到的例子,httpclient只能添加静态请求参数,而用户通过网页上传的图片跟填写的String还不一样,所以不确定httpclient是否可以实现我的需求。 或者哪位高手有更好的建议吗?请指点,多谢! 附:网页这样请求: <form action="/pic/uploadPic" enctype="multipart/form-data" method="post"> <table class="gridtable"> <tr> <th>select pic:</th> <td><input type="file" name="myfile" value="browse"></td> </tr> </table> <p><input type="submit" value="submit"></p> </form> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2015-12-16
httpclient可以上传文件。
我的思路是做两次提交,首次从服务器A获取需要提交的服务器B;然后向服务器B提交文件上传请求。 你的A服务器感觉就像控制服务器。 |
|
返回顶楼 | |
发表时间:2015-12-17
非常感谢您的回复。
我原本的目的是,当web端请求上传图片时,首先根据负载均衡算法,计算该请求应该落到哪台服务器上,例如服务器B,然后由服务器B来处理该请求。这样做的目的是通过负载均衡来处理高并发,降低服务器负载。 您的建议: 1.web请求发送到统一的一台服务器,如服务器A 2.服务器A将该图片存下来 3.然后再计算请求落到哪台服务器,如服务器B 4.服务器A将本地保存的图片发送到服务器B 这样在步骤1,2的时候,相当于单个服务器处理图片保存,当高并发的时候,效率会降低,造成用户响应非常慢的情况吧。 还有其他好的办法吗? 多谢啦,急求! |
|
返回顶楼 | |
发表时间:2015-12-17
最后修改:2015-12-17
不是啊,我的意思就是A是NameNode,而B,C,D是DataNode;A是控制服务,做负责均衡用,返回需要上传的文件服务。不知道你水平如何,你可以看一下FastDFS文件上传的思路。
|
|
返回顶楼 | |