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