我有一个 Web 应用程序,它在 Azure 云的多个区域中运行(现在是 4 个)。现在我有以下问题:
流量管理器针对速度进行了配置,因此他为用户选择了具有最低延迟的区域。
现在我有一些用户,比如说灰色地带。他们在区域之间跳跃。具体示例:我在美国中心和西欧有服务器,用户在亚特兰大。对这两个区域的 ping 非常接近,因为用户有一次在欧洲服务器上,而在第二天他登陆美国中心。
由于会话管理,这对我来说是个问题......然后用户没有在其他区域登录。我使用 Redis 缓存作为会话的存储,但每个区域都有自己的 Redis 缓存。一种解决方案是为全球所有区域使用一个 Redis 缓存。但我读到微软建议将 Redis 缓存保持在与 Web 服务器相同的区域......
当涉及到文件上传时,对于这个“灰色地带”用户来说,这变得非常有趣。我的 Web 应用程序允许经过身份验证的用户上传多个 100MB 大的文件。我们使用分块来上传这些大文件。据我所知,这还没有发生,但从理论上讲,可以说前半部分块落在欧洲服务器上,其余块落在美国中心服务器上。噩梦... :)
我目前陷入困境,因为我注意到解决此类问题的最佳方法是什么?
我想出的唯一解决方案是以下内容:全局 rediscache,因此用户在所有区域中都经过身份验证。如果真的发生在上传过程中一个块落在错误的区域上,我至少会知道并且可以将它转移到其余块所在的另一个区域。
我对这个解决方案不太满意......这种情况通常如何解决?这里最好的方法是什么?
我将不胜感激任何建议!非常感谢您,
最好的问候,代谢