AWS Flow Framework 基本概念:可扩展应用程序 - AWS Flow Framework 适用于 Java

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Flow Framework 基本概念:可扩展应用程序

Amazon SWF 具有两项重要功能,可以轻松扩展工作流应用程序以处理当前负载:

  • 完整的工作流程执行历史记录;您可以实现无状态的应用程序。

  • 松散耦合到任务执行的任务计划;可以轻松扩展应用程序以满足当前需求。

Amazon SWF 通过将任务发布到动态分配的任务列表(而不是直接与工作流和活动工作线程通信)来安排任务。相反,工作线程使用 HTTP 请求轮询相应的列表以查找任务。该方法将任务安排与任务执行进行松耦合,工作线程在任何适用的系统上运行,包括 Amazon EC2 实例、公司数据中心、客户端计算机等。由于 HTTP 请求来自于工作线程,因此,不需要使用外部可见的端口,这甚至允许工作线程在防火墙后面运行。

工作线程用于轮询任务的长轮询机制确保工作线程不会过载。即使在计划任务中出现峰值,工作线程也会按自己的频率提取任务。不过,由于工作线程是无状态的,您可以启动额外的工作线程实例,以便动态扩展应用程序以满足增加的负载要求。即使它们在不同的系统上运行,每个实例也会轮询相同的任务列表,并且第一个可用的工作线程实例执行每个任务,而无论工作线程位于何处或何时启动。在负载下降时,您可以相应地降低工作线程数。