You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cadence工作流集群能否无停机切换到基于ElasticSearch的高级可见性功能?

Cadence可见性存储从Cassandra无停机切换到ElasticSearch方案可行性说明

结论:该无停机切换方案完全可行,Cadence原生支持双写可见性存储的灰度切换能力,可完全满足你提出的三项无停机要求,具体落地流程如下:

前置准备阶段

  • 提前部署与当前Cadence版本兼容的ElasticSearch集群,导入Cadence官方提供的可见性索引模板,完成权限配置确保Cadence服务可正常读写ES
  • 修改Cadence集群配置:
    • 开启enableDoubleVisibility参数为true
    • 保留Cassandra作为主可见性存储,新增ES作为从可见性存储
    • 配置读请求默认优先走主存储Cassandra,ES仅作为备份写入节点
  • 滚动重启所有Cadence服务节点(frontend、history、matching、worker),滚动重启过程不会中断业务,已有工作流可继续执行,新工作流也可正常提交

双跑校验阶段

  • 保持双写配置运行至少一个集群最长工作流的运行周期,确保所有存量工作流的可见性事件均已同步写入ES
  • 抽样比对Cassandra与ES中可见性数据的一致性,包括工作流执行状态、起止时间、自定义搜索属性等,同时验证Java客户端getResult调用完全正常,该阶段所有读请求仍走Cassandra,不会对业务逻辑产生任何影响
  • 该阶段已经完全满足三项无停机要求:
    1. 切换前已启动的工作流可正常执行直至结束
    2. 切换过程中新提交的工作流可正常启动运行
    3. 所有工作流的基础可见性功能均可正常使用,getResult调用依赖的可见性查询能力完全正常

流量切换阶段

  • 灰度调整可见性读流量配比,先切1%流量到ES,观察服务错误日志、业务调用成功率,尤其是getResult调用的耗时和成功率是否出现异常
  • 无异常情况下逐步提升读流量占比到10%、50%、100%,整个过程可随时回滚,只要将读流量切回Cassandra即可
  • 全量读流量切到ES且稳定运行72小时以上后,关闭双写配置,将主可见性存储调整为ES,移除Cassandra可见性存储相关配置
  • 滚动重启所有Cadence服务节点,完成最终切换

注意事项

  • 若当前Cadence版本低于0.22.0,需先升级到支持双可见性存储的版本再执行切换
  • 业务自定义的搜索属性需提前在ES索引中完成字段映射配置,避免双写阶段数据写入失败
  • 建议先在预发环境完整模拟切换流程,验证所有配置和业务逻辑正常后再在生产环境执行

内容的提问来源于stack exchange,提问作者Tamas Weisz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:18:01