本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SWF 限额
Amazon SWF 为某些工作流参数的大小设置了限额,例如每个账户的域数量和工作流执行历史记录的大小。这些限额旨在防止错误的工作流消耗系统的所有资源,但并不是硬性限制。如果发现自己的应用程序经常超出这些限额,您可以申请提高服务限额。
Amazon SWF 的一般账户限额
-
最大注册域数 – 100
此限额包括已注册和已弃用的域。
-
最大工作流和活动类型数 – 每个域 10,000 个
此限额包括已注册和已弃用的类型。
-
API 调用限额 – 除了少见的峰值外,如果应用程序在很短时间内调用了大量 API,也可能会被节流。
-
最大请求大小 – 每个请求 1MB
这是每个 Amazon SWF API 请求的总数据大小,包括请求标头以及所有其他关联的请求数据。
-
计数 API 的截断响应 – 指示达到了内部限额,响应不是完整计数。
在返回完整响应之前,某些查询将达到上述 1 MB 的内部限额。以下 API 可以返回截断的响应,而不是完整的计数。
对于上述每一个 API,如果
truncated
响应设置为 true,计数将小于完整数量。此内部限额无法提高。 -
最大标签数 – 每个资源 50 个标签。
尝试添加超过 50 个标签会引发 400 错误
TooManyTagsFault
。
工作流执行限额
-
最大已开启工作流执行数 – 每个域 100000 个
此计数包括子工作流执行。
-
最长工作流执行时间 – 1 年 这是硬性限额,无法更改。
-
最大工作流执行历史记录数 – 25000 个事件 这是硬性限额,无法更改。
最佳实践是使构造的每个工作流的历史记录不会增长到超过 10000 个事件。因为决策程序必须获取工作流历史记录,所以,历史记录较小时,决策程序能够更快地完成决策。如果使用 Flow Fram ework,则可以使用 ContinueAsNew 以全新的历史记录继续工作流程。
-
开启的子工作流执行的最大数量 – 每个工作流执行 1000 个
-
工作流执行空闲时间限额 – 1 年(受工作流执行时间限制)
您可以配置工作流程超时,以便在工作流程特定阶段耗时太长时引发超时事件。
-
工作流保留时间限额 – 90 天
此时间过后,无法再检索或查看工作流程历史。对 Amazon SWF 保留的已关闭工作流程执行数没有进一步的限制。
如果您的使用案例需要超出这些限额,您可以使用 Amazon SWF 提供的功能继续执行,并使用子工作流执行来构建应用程序。如果您发现仍需要提高限额,请参阅 请求增加配额。
任务执行限额
-
每个任务列表最大轮询数 – 每个任务列表 1000 个
同时最多可有 1000 个轮询程序对一个特定任务列表进行轮询。如果超过 1000,会引发
LimitExceededException
。注意
虽然最大限额是 1000,但您可能会在达到此限额之前就遇到
LimitExceededException
错误。此错误并不意味着任务被延迟。相反,这意味着您在任务列表中拥有最大数量的闲置轮询器。Amazon SWF 设置此限额是为了节省客户端和服务器端的资源。设置限制可以防止过多轮询器进行不必要的等待。您可以使用多个任务列表分配轮询,以减少LimitExceededException
错误。 -
每秒安排的最大任务数 – 每个任务列表 2000 个
在特定任务列表中,您每秒最多可安排 2000 个任务。如果超过 2000,您的
ScheduleActivityTask
决策将因ACTIVITY_CREATION_RATE_EXCEEDED
错误而失败。注意
虽然最大限额是 2000,但您可能会在达到此限额之前就遇到
ACTIVITY_CREATION_RATE_EXCEEDED
错误。要减少这些错误,您可以使用多个任务列表来分配负载。 -
最长任务执行时间 – 1 年(受工作流最长执行时间限制)
-
SWF 在队列中保留任务的最长时间 – 1 年(受工作流执行时间限额限制)
可以配置活动注册过程中的默认活动超时,以便在活动任务执行的特定阶段耗时太长时引发超时事件。还可以在决策程序代码中排定活动任务时,覆盖默认活动超时。
-
最大已开启活动任务数 – 每个工作流执行 1000 个。
此限额包括已安排的活动任务和工作线程正在处理的活动任务。
-
最大已开启定时器数 – 每个工作流执行 1000 个
-
最大输入/结果数据大小 – 32768 个字符
此限额会影响活动或工作流执行结果数据、安排活动任务或工作流执行时的输入数据,以及使用工作流执行信号发送的输入。
-
决策任务响应中的最大决策数 – 变化
由于最大 API 请求大小有 1MB 的限额,因此单次调用
RespondDecisionTaskCompleted
所返回的决策数量将根据每个决策所使用的数据大小(包括提供给安排活动任务或工作流执行的任何输入数据的大小)而受到限制。
Amazon SWF 节流限额
除了上述服务限额外,某些 Amazon SWF API 调用和决策事件海会使用令牌存储桶
所有区域的节流和决策限额都是相同的。
所有区域的节流限额
以下限额适用于个人账户。此外,您也不能请求提高以下限额。有关此操作的信息,请参阅 请求增加配额。
API 名称 | 存储桶大小 | 每秒的重填速率 |
---|---|---|
CountClosedWorkflowExecutions
|
2000 | 6 |
CountOpenWorkflowExecutions
|
2000 | 6 |
CountPendingActivityTasks
|
200 | 6 |
CountPendingDecisionTasks
|
200 | 6 |
DeleteActivityType
|
200 | 6 |
DeleteWorkflowType
|
200 | 6 |
DeprecateActivityType
|
200 | 6 |
DeprecateDomain
|
100 | 6 |
DeprecateWorkflowType
|
200 | 6 |
DescribeActivityType
|
2000 | 6 |
DescribeDomain
|
200 | 6 |
DescribeWorkflowExecution
|
2000 | 6 |
DescribeWorkflowType
|
2000 | 6 |
GetWorkflowExecutionHistory
|
2000 | 60 |
ListActivityTypes
|
200 | 6 |
ListClosedWorkflowExecutions
|
200 | 6 |
ListDomains
|
100 | 6 |
ListOpenWorkflowExecutions
|
200 | 48 |
ListTagsForResource
|
50 | 30 |
ListWorkflowTypes
|
200 | 6 |
PollForActivityTask
|
2000 | 200 |
PollForDecisionTask
|
2000 | 200 |
RecordActivityTaskHeartbeat
|
2000 | 160 |
RegisterActivityType
|
200 | 60 |
RegisterDomain
|
100 | 6 |
RegisterWorkflowType
|
200 | 60 |
RequestCancelWorkflowExecution
|
2000 | 30 |
RespondActivityTaskCanceled
|
2000 | 200 |
RespondActivityTaskCompleted
|
2000 | 200 |
RespondActivityTaskFailed
|
2000 | 200 |
RespondDecisionTaskCompleted
|
2000 | 200 |
SignalWorkflowExecution
|
2000 | 30 |
StartWorkflowExecution
|
2000 | 200 |
TagResource
|
50 | 30 |
TerminateWorkflowExecution
|
2000 | 60 |
UndeprecateActivityType
|
200 | 6 |
UndeprecateDomain
|
100 | 6 |
UndeprecateWorkflowType
|
200 | 6 |
UntagResource
|
50 | 30 |
所有区域的决策限额
以下限额适用于个人账户。此外,您也不能请求提高以下限额。有关此操作的信息,请参阅 请求增加配额。
API 名称 | 存储桶大小 | 每秒的重填速率 |
---|---|---|
RequestCancelExternalWorkflowExecution |
1200 | 120 |
ScheduleActivityTask |
500 | 200 |
SignalExternalWorkflowExecution |
1200 | 120 |
StartChildWorkflowExecution |
500 | 12 |
StartTimer |
2000 | 200 |
工作流级别限额
以下限额适用于工作流级别,不可提高。
API 名称 | 存储桶大小 | 每秒的重填速率 |
---|---|---|
GetWorkflowExecutionHistory |
400 | 200 |
SignalWorkflowExecution |
1000 | 1000 |
RecordActivityTaskHeartbeat |
1000 | 1000 |
RequestCancelWorkflowExecution |
200 | 200 |
请求增加配额
使用中的 S upport Center 页面申请增加所有区域的节流限额和的配额所有区域的决策限额。 AWS Management Console 有关更多信息,请参阅《AWS 一般参考》中的 To Request a Quota Increase。