据我所知,我只能在 Azure 应用程序中打开 5 个端点,但如果我动态打开这些端口会怎样?示例:我有一个WorkerRole
,<Instances count="2" />
然后第一个实例在我在“.csdef”文件中声明的 5 个可用端点之一中打开一个套接字,当连接转到“myapp.cloudapp.net”时......在那里连接到没有侦听套接字的第二个实例的机会?
我想是的,因为负载均衡器正在使用循环调度,它不在乎,它可以将连接转发到第二个,但我可能错了。
问候。
据我所知,我只能在 Azure 应用程序中打开 5 个端点,但如果我动态打开这些端口会怎样?示例:我有一个WorkerRole
,<Instances count="2" />
然后第一个实例在我在“.csdef”文件中声明的 5 个可用端点之一中打开一个套接字,当连接转到“myapp.cloudapp.net”时......在那里连接到没有侦听套接字的第二个实例的机会?
我想是的,因为负载均衡器正在使用循环调度,它不在乎,它可以将连接转发到第二个,但我可能错了。
问候。
你猜对了。绝对没有办法将流量定向到特定实例,并且负载均衡器不知道您的实例是否有一个正在运行的侦听器。完成这项工作的唯一方法是让您的客户端应用程序(连接到 Windows Azure 部署的应用程序)不断重试,直到连接成功。
一般指导是 1) 让每个实例以相同的方式运行,在这种情况下为每个实例打开端口上的侦听器,以及 2) 在添加到负载均衡器之前在 OnStart() 方法中设置侦听器。
我猜你说的是 InputEndpoint。但是 InternalEndpoints 不通过负载均衡器,可以由其他角色专门解决。因此,您可以在 Web 角色上设置一个处理程序,该处理程序可以将请求转发到您想要的特定工作角色实例。