是否可以在不停机的情况下将 cadence-worfklow 集群切换到高级可见性(ElasticSearch)?

Is it possible to switch a cadence-worfklow cluster to advanced visibliity (ElasticSearch) without downtime?

我们在 Cassandra 上有一个带有可见性存储的节奏工作流集群。这不支持高级可见性功能,因此我们想转移到 ElasticSearch。然而,该集群正在积极生产使用中,因此我们希望在不停机的情况下进行切换。澄清“不停机”:

这可能吗?

是的,Cadence 支持它。以下是您可以作为参考的步骤。

1。配置高级可见性

  • 按照instructions设置可见性依赖和配置
  • 保持基本的可见性依赖性
  • 在启用可见性之前,设置 AdvancedVisibilityWritingMode dynamic config 以对高级可见性(基于 ES)和基本可见性(基于数据库)进行双重写入,目前仅从基本可见性读取:
system.advancedVisibilityWritingMode:
  - value: "dual"
system.enableReadVisibilityFromES:
  - value: false

这样 Cadence 将对两个存储写入可见性,但继续对读取使用基本可见性

  • 部署配置

2。切换到高级可见性

您不想立即切换,因为新商店还没有足够的数据。取决于域保留或用例场景,当您认为可以只从高级可见性读取时,您可以稍后切换到使用从高级可见性读取。

system.advancedVisibilityWritingMode:
  - value: "dual"
system.enableReadVisibilityFromES:
  - value: false
  - value: true
    constraints:
      domainName: "samples-domain-A"
  - value: false
    constraints:
      domainName: "samples-domain-B"

这将使samples-domain-Asamples-domain-B从高级可见性读取,其余继续使用基本可见性

  • 当您确信每个域都可以使用高级可见性时。
system.advancedVisibilityWritingMode:
  - value: "dual"
system.enableReadVisibilityFromES:
  - value: true

3。弃用基本可见性

当前面的步骤成功时,您可以弃用基本可见性。 您可以从配置中删除基于数据库的可见性,并删除上面使用的动态配置(当只配置高级可见性时,Cadence 默认只会写入和读取高级可见性)