我试图了解以 azure worker 角色托管消息队列使用者时的最佳实践。我有许多不同类型的消息消费者订阅不同的 azure 服务总线订阅(或者如果您喜欢调用它,则为队列)。我想知道是否应该在一个工作角色中为每个消费者实例化多个线程,还是应该为每个消费者部署到多个工作角色。
问问题
424 次
1 回答
2
这实际上取决于您的应用程序和工作负载。如果您有 I/O 阻塞的任务,那么您应该运行多个线程;否则,您将拥有一个未被有效使用的虚拟机实例。如果它主要基于 CPU,您可能会发现您可以使用较少的线程数高效运行。
如果您无法处理单个实例中的容量(或者如果您需要高可用性,您至少需要两个实例),您应该只扩展您的工作实例。请记住,工作角色实例是一个完整的虚拟机,因此为每个队列消费者添加一个虚拟机会增加成本,并且您可能仍然无法在 I/O 绑定应用程序中看到高吞吐量(或阻塞其他事物的应用程序,例如Web 服务调用)。
您需要进行一些试验,以了解在工作人员端可以使用多少线程。
于 2013-11-23T17:49:25.183 回答