5

我在 Azure 上运行了 3 个 Web 项目,目前所有站点都在一个实例中,这对于降低成本非常有用,但当其中一个 Web 项目的需求达到峰值时会减慢其他服务的速度/使其停止运行时,效果就不那么好了。

其中 2 个站点位于同一个域(一个具有不同端口)上,一个位于子域上。站点的伟大之处在于您可以使用主机名来区分在同一端口上运行的站点。如果子域站点被引用为 Web 角色,它将需要与其他两个 Web 角色不同的端口——这根本不是我想要的!

问题是虽然我可以使用两个云服务,但你不能在一个解决方案中同时调试它们。将它们放在两个解决方案中可以缓解问题,但它们共享一个经常更改的类库,将其放在一个单独的 Web 角色解决方案中,根据我的经验,调试起来非常棘手。

任何帮助是极大的赞赏!

4

1 回答 1

3

这里真正的问题是什么?

首先,我没有看到将所有站点都放在一个 WebRole 中的问题。当一个人达到顶峰时 - 只是扩大规模。是的,您将扩展所有站点,但这只是一个优势。Windows Azure 负载均衡器使用 RoundRobin 算法,保证所有请求在所有实例之间均匀发送。我再说一遍——当你看到峰值时,只需向外扩展,不用担心。毕竟,这就是 Azure 所代表的。对于成本来说,这并不重要,因为无论如何你都会扩大规模。无论是每个 Web 角色一个站点,还是每个 Web 角色 10 个站点,规模都是规模,并且花费相同的资金。

至于其他的担心。我一直在处理多项目解决方案。而且我从未见过多个项目使用的公共库存在问题。尤其是当一切都在(源)控制之下时。Visual Studio 具有“添加现有项目”的简洁功能(当您右键单击解决方案时):

添加现有项目

因此,您的通用类库只是在许多解决方案中使用的单个项目,并在文件系统的单个位置进行编辑。

作为底线,我要再说一遍 - 如果您唯一的烦恼是当您在高峰期扩展站点时,您也会扩展其他站点,只是不要!而且,如果您不想在高峰期进行扩展,并让网站宕机 - 只需不要费心使用 Azure。

于 2012-11-23T12:51:13.540 回答