1

我们希望使用 Milton WebDav 在我们的 Web 应用程序中传输文件,最终将作为 IaaS 部署在云环境(很可能是天蓝色)上。现在我们知道 WebDAV 标准是无状态的,因此它不应该对云负载均衡器造成任何问题,但是我们对 Milton 不确定并且有几个问题:

1.) Milton 是否按原样实施 WebDAV,是否所有通信都保持无状态?我假设它通过每个请求传递身份验证令牌,但我不确定令牌存储在服务器的什么位置?它是否将其存储在数据库或某种缓存等中?

2.) 如果使用负载平衡并且有 5-6 台服务器来处理负载,锁定机制是否工作正常?再次,Milton 服务器将 Lock Token 存储在哪里?

4

2 回答 2

1

抱歉迟到的评论,影响负载平衡的 webdav 的两个最重要方面是摘要身份验证令牌(Nonce 值)和锁定令牌。

作为资源实现者,您可以控制这两者。锁定令牌通常存储在数据库中(您必须在 LockableResource 上实现将执行持久性的方法),因此将在服务器之间共享,尽管使用基于内存的锁定令牌并不少见,在这种情况下,您需要找到一些方法来跨服务器共享该信息。

仅当您实现了 DigestResource 时,才需要考虑摘要随机数。默认的 NonceProvider 使用简单的 HashMap,因此不会在服务器之间共享。但是接口很简单,因此您可以轻松实现数据库存储。如果您的负载平衡解决方案使用粘性会话,那么这将不是问题,因为客户端将转到具有其 nonce 的服务器。

请注意,Tomcat 会话复制对上述问题没有帮助,因为 webdav 客户端通常不支持 cookie,因此没有 Servlet 会话。

于 2012-06-07T00:33:25.043 回答
0

我以前从未使用过 Milton WebDAV,但从外观上看,它用于修改和编辑服务器上的文件。

但是 Azure 的本地存储不共享。每个实例都是一个完全独立的服务器。如果您在一台服务器上修改文件,它将不会被复制到下一台服务器。

Azure 通过上传部署包来工作。当需要启动一个新实例时,它会使用部署包并启动一个全新的服务器。

从你的角度来看,他们没有任何共同点。因此,您永远不会知道您正在访问哪个服务器。

如果您背后有共享文件存储系统,那么情况可能就不同了。但是,从使用 Azure 来看,这种情况看起来很奇怪。不过,带有共享 EBS 的 Amazon EC2 可能会这样做。

于 2012-04-07T13:09:36.413 回答