首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Azure ASP.NET云服务的单个实例或多个实例?

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

Stack Overflow用户
提问于 2014-06-14 18:11:02
回答 2查看 2.4K关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2014-06-15 19:29:40

好的--这里有几个概念,你需要摸索才能回答你的问题。

// Arrange.

首先,我将主要根据link to documentation对您的问题做出一些假设,这样我的答案就不会有那么多歧义。

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

注意:我的回答适用于WebSites、Web角色和Windows运行IIS.但我只是想弄清楚这个问题。

// Act.

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

因此,安装在这台服务器上网站称为an instance

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

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

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

好吧-那么为什么这很重要,这和State有什么关系(正如你正在阅读/提到的那篇文章所建议的那样)?

还记得我说过,一个实例就是一台服务器,如果你有多个实例,那么你就有多个服务器吗?好吧..。现在网站存在于不同的服务器上-除非你做一些特殊的事情,否则他们不能在他们之间共享State数据。这个特殊的东西就是文档中讨论的内容,有很多时髦的术语,比如InprocOutProcDistributed caching等等。

// Assert.

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

现在-有一张美丽的翻车鱼的照片来阅读这一切:)

***是..有许多算法可以处理横向扩展站点的负载平衡,如循环调度等。为了这个问题的目的,让我们尽量保持简单。K?再见了。

票数 5
EN

Stack Overflow用户

发布于 2014-06-15 18:38:50

“多个实例”指的是它所说的--托管在两个IIS实例上的网站的多个实例。如果你使用进程内状态跟踪,你将无法平衡两个web服务器之间的流量(通常使用粘性会话来解决这一问题,但这不是Azure的负载平衡功能的一个选项)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24218824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档