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

1 asp.net azure

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

Pur*_*ome 5

好的 - 这里有一些概念需要你来回答你的问题.

// Arrange.

首先,我将主要根据文档链接对您的问题做出一些假设,因此我的答案不那么含糊.

  1. 您正在处理Azure WebSites而不是云Web角色或使用IIS的自定义Windows虚拟机.**
  2. 你试图记住Session对象的东西(即:State数据).
  3. 对于Azure WebSites,您不确定实例多个实例是什么.

注意:我的答案适用于WebSites,Web角色和运行IIS的Windows VM ..但我只想简单地了解Q.

// Act.

当您创建一个网站(在WebSite,Web角色或带有IIS的自定义Windows服务器中)时,该网站有一些已定义的内存边界/空间/花园/墙/魔术泡泡,称为App Pool.这意味着您的网站与该单一服务器上的其他网站100%隔离.你做的事情不好,它不会弄乱任何人的网站.

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

接下来,我们决定需要处理这么多人访问我们的网站,所以我们需要扩展.这意味着,制作本网站的副本/克隆,具有分割负载的效果.如果您扩展到3个副本,那么每个网络服务器应该(为简单起见)将工作负荷分成3 - 所以每个处理大约33%的负载***.

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

因此,实例是一个术语,用于描述网站安装的服务器数量.

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

还记得我是怎么说实例是单个服务器的,如果你有多个实例,你有多个服务器吗?好吧..既然网站存在于不同的服务器上 - State除非你做一些特殊的事情,否则他们不能在他们之间共享他们的数据.这特殊的东西是什么,文件聊起,有很多像时髦的术语Inproc,OutProc,Distributed caching,等.

// Assert.

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

现在 - 有一张美丽的Mola Mola照片阅读所有这些:)

在此输入图像描述

***是是是..有许多算法可以处理扩展站点的负载平衡,例如循环法等.让我们保持这个问题非常简单.K + thxgoodbai.