我正在尝试迁移到服务结构现有解决方案。部分原因是侦听队列的工作人员数量。例如我有一些队列:
Task1_Queue, Task2_Queue ... TaskN_Queue
对于每个队列,都有一些处理它们的消息的逻辑,比如说工人。他们执行不同的任务,例如生成巨大的报告文件并上传到Azure Storage
数据库或在数据库中进行小型更新。
问题是如何设计服务以使工作人员具有良好的可扩展性。我的想法是:
选项 1 - 每个队列将有单独的无状态服务。没有简单的方法来自动扩展单一服务。
选项 2 - 将工作人员实现为单独的参与者,并使用单一无状态服务来侦听队列和调用参与者。优点 - 开箱即用的自动缩放,对于来自队列的每条消息,都将创建新的参与者。缺点 - 演员将是一次性的。