【问题标题】:AWS SWF vs Flow FrameworkAWS SWF 与流框架
【发布时间】:2018-03-02 16:14:11
【问题描述】:

我熟悉亚马逊 SWF 的概念。我可以看到许多不同语言的 SDK 使用 SWF 服务。此外,amazon Flow Framework 是一组用于实现分布式应用程序的库。目前,此 Flow Framework 可在 Java 和 Ruby 中使用。那么我们如何使用其他语言(如 python、php 等)使用 SWF 编写分布式应用程序。这是否意味着亚马逊仅提供 Java 和 Ruby 框架,其余语言有其他供应商的库?请解释 。

【问题讨论】:

    标签: amazon-swf


    【解决方案1】:

    您说得对,AWS 目前只为 Ruby 和 Java 提供高级框架(“Flow”框架)。大多数(全部?)官方 SDK 都提供对 SWF 的低级访问:用于 Python 的 boto2/3、go-sdk 等。

    使用 SWF 时,您会发现自己主要实现两种类型的程序:“活动工作者”和“决策者”(http://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-actors.html)。

    使用 Flow 框架不是强制性的,但它通过提供用于描述同步点、定义哪些任务可以并行运行、重试等的高级抽象来帮助实现决策器。还有非官方库(I'我亲自为我的公司维护一个,“simpleflow”)。

    如果你想为决策者使用其他语言,我建议你先尝试使用现有的框架,然后看看你是否想自己实现这个(根据我的经验,这不是微不足道的)。

    如果你想用其他语言实现活动,我建议你开始端到端使用 Flow 框架,然后你可以 1/ fork 并使用你最喜欢的语言作为 Ruby/Java Flow workers 的子进程,或 2/ 模仿 Flow 框架的序列化逻辑,并使用低级 API 自己直接实现工作线程(这很简单:轮询活动,执行工作,然后用结果响应 SWF)。

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 2017-12-23
      • 2016-01-22
      • 2016-12-11
      • 1970-01-01
      • 2017-02-19
      • 2015-03-17
      • 2014-06-09
      • 2012-12-03
      相关资源
      最近更新 更多