Windows azure 云服务中的全局变量

Posted

技术标签:

【中文标题】Windows azure 云服务中的全局变量【英文标题】:Global variables in windows azure cloud service 【发布时间】:2013-10-22 05:50:35 【问题描述】:

我们的应用程序有一些全局变量和隐藏字段,就像任何其他 asp.net 应用程序一样。

我们对 Windows azure 云服务有疑问,因为 azure 有多个实例,所以如果 javascript 的全局变量在代码中间的某处被赋值。

如果由于负载平衡而发生实例移位,那么该全局变量是否会保持相同的值。

此外,我们将大型 html 文本保存在服务器上的指定文件夹中,并根据用户选择在一段时间后检索相同的内容。(它是一个大型 PDF 文档) 如果实例发生变化,这会产生问题吗?

windows azure 的负载平衡标准对我来说不是很清楚。如果有人能对此有所了解,我们将不胜感激。

我们倾向于创建 4 个实例。

【问题讨论】:

【参考方案1】:

我们的应用程序有一些全局变量和隐藏字段 其他 asp.net 应用程序。

我们对 Windows azure 云服务有疑问,因为 azure 有多个实例,所以如果 javascript 的全局变量是 在代码中间的某处赋值。

如果存在 由于负载平衡导致的实例转移。

由于 JavaScript 是一种客户端技术(至少以您使用的形式),您必须使用一些服务器端代码来填充您的 JS 变量。问题是您如何在服务器上存储填充 JS 变量的变量。如果它们存储在特定服务器中(使用静态变量或进程内会话变量),那么您肯定会遇到问题,因为它们在您角色的其他实例上不可用。

解决此问题的一种方法是将这些变量存储在某个位置(分布式缓存、持久性存储等),所有实例都可以访问它们。如果它们不包含任何敏感信息,您也可以将它们保存在 cookie 中。

我们还将大型 html 文本保存在服务器上的指定文件夹中 并在一段时间后根据用户选择检索相同的内容。(它的 一个大的 PDF 文档)如果实例 换班。

哦,是的!这肯定会给你带来麻烦。推荐的方法是将这些文件保存在 Blob 存储中,而不是 VM 的本地存储中。

windows azure 的负载均衡标准不是很清楚 对我来说。如果有人可以对此有所了解,我们将非常 谢谢。

简而言之,Windows Azure 云服务使用Round Robin Load Balancing 方案,这实质上要求您从会话的角度让您的服务无状态。

如果您确实不需要 Windows Azure 云服务提供的所有功能,您可能需要查看 Windows Azure 网站。如果您正在做的只是托管一个网站,那么 Windows Azure 网站可能是一个不错的选择。

【讨论】:

以上是关于Windows azure 云服务中的全局变量的主要内容,如果未能解决你的问题,请参考以下文章

在 Databricks 中将云数据源注册为全局表而不进行复制

Windows 系统下设置Nodejs NPM全局路径和环境变量配置

可以从 Windows DLL 中的全局变量创建/销毁 std::threads 吗?

C# Windows 窗体应用程序中的全局变量方法? (是公共静态类 GlobalData 最好的)

PHP中的超级全局变量

Laravel Blade 中的全局变量