asp.net - 什么是 Azure ASP.NET 云服务的单实例或多实例?

标签 asp.net azure

使用 Azure 云服务时,asp.net 中的单实例站点和多实例站点有什么区别?

最佳答案

好的 - 这里有一些概念,您需要理解才能回答您的问题。

//排列。

首先,我主要根据link to documentation对您的问题做出一些假设。 ,所以我的答案不那么含糊。

  1. 您正在处理 Azure WebSites而不是云 Web 角色或带有 IIS 的自定义 Windows 虚拟机。 **
  2. 您正在尝试记住 Session 对象的内容(即:State 数据)。
  3. 对于 Azure 网站,您不确定什么是实例多个实例。

注意:我的答案适用于网站、Web 角色和运行 IIS 的 Windows VM ..但我只是想在问题上说得非常清楚。

//行动。

当您创建网站时(无论是在网站、Web 角色还是带有 IIS 的自定义 Windows 服务器中),网站都会有一些已定义的内存边界/空间/花园/墙壁/魔泡,称为 App Pool 。这意味着您的网站与该单个服务器上的其他网站 100% 隔离。你做了一些坏事,它不会扰乱其他人的网站。

因此,安装在该单个服务器上的网站称为实例

接下来,我们决定需要处理如此多的人访问我们的网站,因此我们需要扩展。这意味着,复制/克隆该网站,具有分散负载的效果。如果扩展到 3 个副本,则每个网络服务器应该(为简单起见)将工作负载拆分为三分之一 - 因此每个服务器处理大约 33% 的负载***。

现在,您在 3 台服务器上有 1 个网站,这称为多个实例

因此,实例是一个术语,用于描述网站安装在多少台服务器上。

好的 - 那么为什么这很重要,这与 State 有什么关系(正如您正在阅读/引用的那篇文章所建议的那样)?

还记得我说过实例是单个服务器吗?如果您有多个实例,那么您就有超过 1 个服务器?好吧..现在网站存在于不同服务器上 - 他们无法在它们之间共享状态数据,除非您做一些特殊的事情。这个特殊的东西就是该文档正在讨论的内容,其中有很多时髦的术语,例如 InprocOutProc分布式缓存 等。

//断言。

所以 TL;DR;您现在知道,当您横向扩展并在单独的硬件上拥有网站的多个副本时,这称为多实例,当您这样做时(拥有多个副本),那么您需要考虑一些用于处理这些多个服务器之间的State共享的特殊代码 - 如果您需要共享状态。

现在 - 有一张美丽的 Mola Mola 的照片,以便阅读本文:)

enter image description here

*** 是是是..有很多算法可以处理扩展站点的负载平衡,例如循环法等。为了这个问题的目的,让我们保持简单。克? thxgoodbai。

关于asp.net - 什么是 Azure ASP.NET 云服务的单实例或多实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24218824/

相关文章:

css - ASP.NET CheckBoxList ListItem 没有换行

c# - ASP.NET Identity 2.0 注销不工作

python-3.x - Pythongenerate_container_sas函数错误,base64编码字符串无效

debugging - 如何调试Azure Web App内存泄漏?

python - Azure函数应用程序: Microsoft. Azure.WebJobs.EventHubs : Value cannot be null.(参数 'receiverConnectionString')

c# - 在没有存储过程的情况下从 SQL Server 表生成 C# 类

c# - ExecuteReader 仅返回 1 个值

javascript - 在没有 ActiveX 的情况下使用 javascript 启动 word?

azure - 可以复制 Azure 虚拟机吗?

sql-server - 如何从azure网站连接aws VM上的数据库