我试图了解以 azure 辅助角色托管消息队列消费者时的最佳实践。我有许多不同类型的消息使用者,它们订阅不同的 Azure 服务总线订阅(或者队列,如果您喜欢称之为队列)。我想知道是否应该在一个工作角色中为每个消费者实例化多个线程,或者应该为每个消费者部署到多个工作角色。
最佳答案
这实际上取决于您的应用和工作负载。如果您有 I/O 阻塞的任务,那么您应该运行多个线程;否则,您将拥有一个无法有效使用的虚拟机实例。如果它主要基于 CPU,您可能会发现可以使用较少数量的线程高效运行。
只有当您无法处理单个实例的容量(或者您需要高可用性,其中您至少需要两个实例)时,您才应该扩展工作线程实例。请记住,辅助角色实例是一个完整的虚拟机,因此为每个队列使用者添加一个虚拟机会增加成本,并且您仍然可能看不到 I/O 密集型应用程序(或阻塞其他事物的应用程序,例如Web 服务调用)。
您需要做一些实验来了解工作端可以使用多少个线程。
关于Azure辅助角色+消息队列消费者数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20159648/