cadence如何在各种故障情况下处理故障


Cadence是一个容错的有状态代码平台。cadence如何在各种故障情况下处理故障?

分布式系统中存在各种故障,Cadence为它们提供了各种选项。

这是我自己的单子。它可能不完整。但如果我能想到的话,我会尝试添加更多。

活动

  • 活动失败并重试。看见https://cadenceworkflow.io/docs/concepts/activities/#timeouts
  • 还要注意,长时间运行的活动可以通过"心跳"从检查点恢复

工作流

  • 通过设计事件源模型,工作流可以从工作人员崩溃时剩下的任何点恢复。看见https://cadenceworkflow.io/docs/concepts/workflows/#state-恢复和确定性

  • 工作流还可以具有类似重试策略的活动,以便在失败时自动重试https://cadenceworkflow.io/docs/concepts/workflows/#workflow-重试

  • 在某些情况下,失败是由错误的代码更改引起的,这会导致错误的状态。Cadence提供"重置"工具,可将工作流程重置到任何时间点。看见https://cadenceworkflow.io/docs/cli/#reset-并重新启动

  • 除重置外,Cadence还允许您通过部署进行重置。这对于重置大量工作流(例如数百万(非常有用。

cadence服务器集群

活动和工作流工作者都是无状态的。

Cadence服务器是一种高可用性和可扩展性的服务,可提供持久性。

  • 持久性来自底层设计和持久性存储(由Cassandra、MySQL或Postgres提供(
  • 在单个集群设置中,Cadence服务使用不同的独立碎片运行。整个集群由不同的主机组成。任何出现故障的主机都可以替换为另一台
  • Cadence提供跨数据中心复制,以提供更高的可用性https://cadenceworkflow.io/docs/concepts/cross-dc-replication/#global-域体系结构

最新更新