Temporal:ExecuteActivity和ExecuteLocalActivity的区别、如何选用

Temporal Workflow 是一个用于编排微服务的系统,它允许开发者编写长时间运行的、容错的、可伸缩的应用程序。在 Temporal Workflow 中,Activity 是定义在 Workflow 外部的业务逻辑单元,可以在 Workflow 中被调用执行。

ExecuteActivityExecuteLocalActivity 是 Temporal Workflow SDK 中用于调度和执行 Activity 的两种不同的方法,它们有以下主要区别:

  1. 分布式执行 vs 本地执行:

    • ExecuteActivity 用于调度一个分布式的 Activity,这意味着 Activity 可以在任何连接到 Temporal 集群的工作进程(Worker)上执行,不一定在启动 Workflow 的同一个工作进程上。
    • ExecuteLocalActivity 用于调度一个本地的 Activity,它将在启动 Workflow 的同一个工作进程上执行。这通常用于需要较低延迟的轻量级操作。
  2. 重试和超时策略:

    • ExecuteActivity 支持更复杂的重试和超时策略,可以在 Activity 失败时进行配置和自动重试。
    • ExecuteLocalActivity 也支持重试,但通常具有更简单的重试策略,并且通常用于预期执行时间较短的操作。
  3. 可观测性:

    • 使用 ExecuteActivity 调度的 Activity 会在 Temporal 的历史事件中有更详细的记录,这有助于调试和监控。
    • ExecuteLocalActivity 调度的 Activity 在 Temporal 的历史事件中记录较少,因此在调试和监控方面可能不如 ExecuteActivity 详细。

并不是所有的 Workflow Activity 都适合使用 ExecuteLocalActivity。如果你的 Activity 是计算密集型的、需要较长时间执行的、或者需要复杂的重试逻辑和超时管理,那么使用 ExecuteActivity 可能更合适。如果你的 Activity 是轻量级的、需要低延迟的,并且可以在 Workflow 所在的本地工作进程上快速完成,那么 ExecuteLocalActivity 可能是一个更好的选择。

在决定使用哪种方法时,需要考虑 Activity 的特性以及对性能、可靠性和可观测性的需求。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风不归Alkaid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值