【发布时间】:2015-09-20 09:24:25
【问题描述】:
我有一个配置了 Worker 角色的云服务。 worker 角色基本上监听一个端口并根据需要执行操作。我想要做的是将该工作人员角色配置为运行多个实例,但将每个实例配置为侦听不同的端口(输入端点)。
这在 Microsoft Azure 中可行吗?
【问题讨论】:
我有一个配置了 Worker 角色的云服务。 worker 角色基本上监听一个端口并根据需要执行操作。我想要做的是将该工作人员角色配置为运行多个实例,但将每个实例配置为侦听不同的端口(输入端点)。
这在 Microsoft Azure 中可行吗?
【问题讨论】:
让每个工作实例执行不同的操作对于云服务的设计目的而言是不合规矩的。也就是说:它是为无状态横向扩展而设计的:每个实例都做同样的事情,但能够针对更多的流量/容量/cpu/任何东西进行扩展。在您的情况下,这意味着让每个工作实例在所有端口上侦听所有可能的传入流量,并处理所有传入的流量。
也就是说:您可以配置InstanceInputEndpoint 将特定端口的流量转发到特定的工作程序实例。配置InstanceInputEndpoint 的架构详细信息是here。您可能仍需要在您的工作程序实例中使用一些决策逻辑,以确定它应该做什么(以及如何执行此操作取决于您的应用程序)。如果您需要在实例内部确定实例 ID,则需要查看 RoleEnvironment.CurrentRoleInstance.Id(假设 ID 不会随时间变化)。
【讨论】: