2

我们可以选择在单个部署中拥有 2 个或更多 Web 角色。但是每个部署都可以是暂存的或生产的,即通过扩展,我们只能获得 1 个 URL来访问该部署。

考虑到这种情况如何访问不同的 webrole,它们的 URL 是什么。还有在单个部署中拥有多个 webrole 的用途是什么。

4

2 回答 2

1

为什么在单个部署中有多个 Web 角色?考虑具有面向公众(面向客户)网站和管理网站(可能在端口 8000 上)的应用程序。有两种基本的处理方法:

  1. 将两个站点置于相同的 Web 角色中。这意味着它们现在共享 VM 实例、网卡、内存等。这也意味着,如果您需要扩展以处理流量,两个站点将作为一个单元一起扩展。
  2. 将每个站点置于其自己的角色中。现在,它们位于自己的 VM 实例中,并且可以单独扩展。

选项 #1 更具成本效益,因为您只需使用两个角色实例(SLA 至少需要两个)即可。选项 #2 更适合独立缩放。例如:如果您的客户流量激增,这可能会给您在尝试访问管理网站时带来麻烦,而如果您的管理网站发挥自己的作用,则不会受到客户流量的影响。

在这两种情况下,您都会获得一个 IP 地址、一个 *.cloudapp.net 名称(您可以使用 CNAME 将自定义域名映射到它)。

暂存与生产:您的整个部署可以发布到暂存或生产(或两者,作为两个单独的发布)。暂存并不适用于外部用户 - 它实际上适用于预上线区域,您可以在其中验证新部署是否按预期工作。然后,您可以在生产环境中与当前运行的系统执行虚拟 IP 交换,从而有效地交换暂存和生产部署。这会导致您的软件几乎即时升级,而无需客户停机。

请记住:部署中的每个角色都必须保持在一起——您不能将一个角色部署到一项服务,而将另一个角色部署到另一项服务。如果您想这样做:将您的角色分成单独的部署。然后您可以将它们发布到不同的 URL。

于 2011-06-05T12:26:02.447 回答
0

在生产部署中,您的 webrole 可以通过带有您之前定义的前缀的 URL 访问,例如myapp.cloudapp.net;另一方面,登台部署中的 Web 角色可以通过自动生成的 URL 访问,例如205521014d8c440a83852b62e0df9db5.cloudapp.net

恐怕无法绕过AppFabric路由器直接访问Web角色实例。为什么你还需要这样做?

如果您需要从一个 Web 角色实例访问另一个,请考虑使用队列分布式缓存而不是直接通信。

于 2011-06-05T11:29:00.350 回答