请教Java怎样实现跨服务器文件上传

请教Java怎样实现跨服务器文件上传,第1张

你好!

另一台机器也要有处理文件上传的WEB程序,你可以参考Stream上传插件(支持HTML5和Flash两种方式上传)

Stream 上传插件

Stream 是解决不同浏览器上传文件的插件,是Uploadify的Flash版和Html5版的结合!

Stream 简介

Stream 是根据某网的文件上传插件加工而来,支持不同平台(Windows, Linux, Mac, Android, iOS)下,主流浏览器(IE7+, Chrome, Firefox, Safari, 其他)的上传工作,当然在Html5标准下,还支持文件的断点续传功能,有效解决大文件的Web上传问题!

主要特征

1 源码完全开放,目前有Java、PHP、Perl三种后台语言实现

2 支持HTML5、Flash两种方式(跨域)上传

3 多文件一起上传

4 HTML5支持断点续传,拖拽等新特性

5 兼容性好IE7+, FF36+, Chrome,Safari4+,遨游等主流浏览器

6 进度条、速度、剩余时间等附属信息

7 `选择文件的按钮`可以自定义

8 简单的参数配置实现 灵活多变的功能

9 支持文件夹上传(Chrome21+, Opera15+)

10 支持自定义UI(V14+)

指定跨域上传就可以了

这些都是小鸟云的工程师告诉我的,建议你可以试试小鸟云

3中处理方式 1、服务器A通过stock 将服务器B 上得文件读取到A服务器上然后再输出给用户 2、服务器B用>1首先连接本机服务器(在VS编辑器中 数据库连接时,选择本机服务器名),用SQL语句取出表A和表B的数据,写入到一个新建的数据库中 2连接局域网中另一个你需要连接的数据库,用SQL语句取出表C和表D的数据,写到上面新建的数据库中。 3在同一个数据库中做连接查询就是了

一,所有区域都能跨服但是如果一个区域人数过多(比如超过200人),那么就会自动用相位系统分隔开,不同服务器的人就只能看到自己的人
二,实名好友跨服组队没有服务器限制,而且组队在一起的人可以一直看到队友,而不会被相位系统分隔开
现在的跨服系统是把某几个固定的服务器绑定在一起,在不跨服组队的情况下只能看到这几个服务器的玩家如果跟非固定服务器的跨服实名好友组队的话,那么被邀请的人会被拉到邀请人所在的服务器场景(更正一楼的回答),不会出现一楼所说的A和B同时在两个服务器都出现的情况

但是RP服务器以后可能要改 根据下面的暴雪蓝帖

在70补丁中我们进行了一些服务端上的改动,目的是为了改善跨服系统和位面系统的体验;但我们无意间将角色扮演服务器(RP服)加入了跨服列表,这并不是我们最初设计上的思路。

我们了解这个问题给RP服务器的玩家带来的困扰,我们的技术团队也已经在RP服务器的大部分区域中取消了跨服功能,也就是在这些区域中的RP服务器玩家不会自动和其他服务器的玩家混合在一起,也不会被分到不同的位面中。换句话说,现在你在RP服务器不会看不到同一服务器的玩家,也不会看到特别多(如果有)其他服务器的玩家。

另外,我们之前将RP服务器与其他普通服务器隔离开的政策仍未改变,即便是在还未修复的区域中也是这样。但我们的队伍跨服机制依然存在,所以如果RP服务器的玩家与其他服务器的玩家组队,你还是会把他们“拉”到你的服务器中的。

我们目前已经在暴风城和奥格瑞玛完成了这一 *** 作,北美服务器的玩家应该很快可以看到这一改动。其他地区的服务器将在下次重启后完成改动。我们将会花一段时间了解这个改动的效果,之后就会对其他社交区域(其他主城,艾尔文森林等等)进行隔离,最后将所有RP服务器与主流游戏世界隔离开来。然而在极小部分的区域中,我们依然需要保持位面系统的运作来防止服务器宕机等问题,尤其是在资料片即将来临的前夕。

我们再次重申,我们不希望打扰到角色扮演服务器中的玩家,我们对于这次意外带来的混乱或不适表示非常抱歉。

Session共享有多种解决方法,常用的有四种:客户端Cookie保存、服务器间Session同步、使用集群管理Session、把Session持久化到数据库。


1客户端Cookie保存
以cookie加密的方式保存在客户端,每次session信息被写在客户端,然后经浏览器再次提交到服务器,即使两次请求在集群中的两台服务器上完成,也可以到达session共享。


优点是减轻服务器端的压力;


缺点是受到cookie的大小限制,可能占用一定带宽,因为每次请求会在头部附带一定大小的cookie信息,另外这种方式在用户禁止使用cookie的情况下无效。


传统网站一般通过将一部分数据存储在cookie中,来规避分布式环境下session的 *** 作。这样做的弊端很多,一方面cookie的安全性一直广为垢病,另一方面cookie存储数据的大小是有限制的。随着移动互联网的发展,很多情况下还得兼顾移动端的session需求,使得采用cookie来进行session同步的方式的弊端更为凸显,分布式session正是在这种情况下应运而生的。


2服务器间Session同步
定时同步各个服务器的session信息,此方法可能有一定延时,用户体验也不是很好。


使用主-从服务器的架构,当用户在主服务器上登录后,通过脚本或者守护进程的方式,将session信息传递到各个从服务器中,也可以手工把session文件存放的目录改为nfs网络文件系统,从而实现文件的跨机器共享(使用nfs或windows文件共享都可以,或者专用的共享存储设备)。


这样,用户访问其它的从服务器时,就可以读到session信息。


缺点:比如速度慢、不稳定等,另外,如果session信息传递是主->从单向的,会有一些风险,比如主服务器down了,其它服务器无法获得session信息。


3把Session持久化到数据库
这种共享session的方式即将session信息存入数据库中,其它应用可以从数据库中查出session信息。目前采用这种方案时所使用的数据库一般为mysql。


利用数据库共享session的方案有一定的实用性,但也有如下缺点:
首先session的并发读写在数据库中完成,对mysql的性能要求比较高;
其次,我们需要额外地实现session淘汰逻辑代码,即定时从数据库表中更新和删除session信息,增加了工作量。
对于系统可靠性要求较高的用户,可以将session持久化到DB中,这样可以保证宕机时会话不易丢失,但缺点也是显而易见的,系统的整体吞吐将受到很大的影响。


4使用集群管理Session
将session统一存储在缓存集群上,如memcache,这样可以保证较高的读、写性能,这一点对于并发量大的系统来说非常重要;并且从安全性考虑,session毕竟是有有效期的,使用缓存存储,也便于利用缓存的失效机制。


使用缓存的缺点是,一旦缓存重启,里面保存的会话也就丢失了,需要用户重新建立会话,可以使用缓存集群来保证缓存的稳定性。


如图(基于缓存的分布式session架构)所示,前端用户请求经过随机分发之后,可能会命中后端任意的Web Server,将session以sessionid作为key,保存到后端的缓存集群中,使得不管请求如何分配,即便是某个Web Server宕机,也不会影响其他Web Server获得 session,这样既实现了集群间的session同步,又提高了 Web Server的容错性。


Tomcat作为Web Server时,可以通过一个简单的工具memcached-session- manager9(一个Tomcat session共享解决方案), 实现基于memcache的分布式session。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12689030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存