openwhisk 中 action sequence 的调用流程是怎样的?
What the invocation flow of action sequence in openwhisk?
我对动作序列的调用流程有点困惑。我阅读了代码,它显示每个序列都有一个主要动作,它调用该序列中的每个动作。在每次调用中,主要操作都会向 apihost 发出 post,这是否意味着整个流程(从控制器->kafka->dispather->invoker->container)将一遍又一遍?
更新:
最近(根据 ca15c68d348a2a02cf9da54475e96b43d48a3dac)序列进行了大修。下面提到的 "root" 动作不再需要,所有动作的调用都由控制器本身在内部编排。
由于此更改是最近的(截至 2016 年 11 月 21 日),因此可能不会部署到所有生产环境中。
你描述的基本上是对的。 "root" 操作充当 "leaf" 操作的协调器。根动作通过通常的 API 一个接一个地调用叶动作,从而一遍又一遍地重复该流程。
从概念上讲,这就是可以直接实现序列的方式。在此提交 https://github.com/openwhisk/openwhisk/commit/ca15c68d348a2a02cf9da54475e96b43d48a3dac) 中,序列 "main" 被内化到控制器中并绕过重复的身份验证和权利检查。内部请求仍然发布到 Kafka,因为这使它们受到负载平衡的影响。
我对动作序列的调用流程有点困惑。我阅读了代码,它显示每个序列都有一个主要动作,它调用该序列中的每个动作。在每次调用中,主要操作都会向 apihost 发出 post,这是否意味着整个流程(从控制器->kafka->dispather->invoker->container)将一遍又一遍?
更新:
最近(根据 ca15c68d348a2a02cf9da54475e96b43d48a3dac)序列进行了大修。下面提到的 "root" 动作不再需要,所有动作的调用都由控制器本身在内部编排。
由于此更改是最近的(截至 2016 年 11 月 21 日),因此可能不会部署到所有生产环境中。
你描述的基本上是对的。 "root" 操作充当 "leaf" 操作的协调器。根动作通过通常的 API 一个接一个地调用叶动作,从而一遍又一遍地重复该流程。
从概念上讲,这就是可以直接实现序列的方式。在此提交 https://github.com/openwhisk/openwhisk/commit/ca15c68d348a2a02cf9da54475e96b43d48a3dac) 中,序列 "main" 被内化到控制器中并绕过重复的身份验证和权利检查。内部请求仍然发布到 Kafka,因为这使它们受到负载平衡的影响。