到Windows Azure中WebRole的特定实例的URL
本文关键字:实例 URL WebRole Windows Azure | 更新日期: 2023-09-27 18:14:27
我有一个WebRole在我的Windows Azure部署与几个实例。在这个角色中,我做了很多缓存。因此,我的客户机每次都向另一个实例请求特定的信息,这些信息可能没有存储在被请求的实例中。我所有的缓存信息都有一个"instance"属性,所以我可以将我的请求路由到云中的特定实例(通过内部端点)。
是否有办法得到一个URL为我的实例,而不是我的部署?例如:
instance1.mydeployment.cloudapp.net ?
我觉得有些事真的很有用。
谢谢。
是的,有。我不确定它来自哪个SDK,但在csdef文件中,你可以将正常端点部分更改为如下所示
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" localPort="80" />
<InstanceInputEndpoint name="Endpoint2" localPort="80" protocol="tcp"><!--localPort must be 80 for this to work-->
<AllocatePublicPortFrom>
<FixedPortRange min="10016" max="10020"/> <!--make a range that covers the # instances you might need or scale too - bear in mind azure port limits ~25 -->
</AllocatePublicPortFrom>
</InstanceInputEndpoint>
</Endpoints>
现在您应该能够访问
http://myapp.cloudapp.net: 10016
http://myapp.cloudapp.net: 10017
您的方法与Tomcat服务器的sticky session
问题非常相似。因为你生活在。net的世界里,我强烈建议你改变你的架构,不要依赖于这种粘接路由。
如果你真的想实现那个特定的目标(我不知道为什么会有人想要),可以通过应用请求路由实现。这并不容易,但却是可行的。您可以在这里阅读有关如何在Azure Web Role上安装ARR的信息。但是您必须维护ARR的自动配置和重新配置,特别是当您添加或删除实例时。
坦率地说,粘性会话的整个想法是错误的。即使你设法处理ARR的自动安装和配置,告诉我当Azure Fabric控制器为Guest OS Update关闭一个实例时会发生什么。使用该实例服务的用户会发生什么情况?我建议您使用分布式Windows Azure缓存作为实例之间共享缓存数据的现成健壮的解决方案。
据我所知,您无法为单个实例获得单独的url。
编辑:以下答案可能会有所帮助:Azure Web角色内部端点-非负载均衡
看一下这个例子:http://blog.maartenballiauw.be/post/2011/10/21/Running-Memcached-on-Windows-Azure-for-PHP.aspx
我知道,这是一个PHP和memcache的教程,但它使用内部端点通过TCP进行角色通信。也许它能帮助你理解,如何解决你的问题。