当前位置: 首页 > 知识库问答 >
问题:

Cadence中匹配服务的问题

曾嘉瑞
2023-03-14

但是当你点击它,你会看到它实际上已经完成了:

与此同时,这种情况开始发生,我们注意到几个工作流需要很长时间才能完成,其中几个工作流会卡在“计划”状态下,并且永远不会从那里进一步发展。检查日志后,我们看到的唯一错误是这样的:

{"level":"error","ts":"2021-03-06T19:12:04.865Z","msg":"Persistent store operation failure","service":"cadence-matching","component":"matching-engine","wf-task-list-name":"cadence-sys-history-scanner-tasklist-0","wf-task-list-type":1,"store-operation":"create-task","error":"InternalServiceError{Message: CreateTasks operation failed. Error : Request on table cadence.tasks with ttl of 630720000 seconds exceeds maximum supported expiration date of 2038-01-19T03:14:06+00:00. In order to avoid this use a lower TTL, change the expiration date overflow policy or upgrade to a version where this limitation is fixed. See CASSANDRA-14092 for more details.}","wf-task-list-name":"cadence-sys-history-scanner-tasklist-0","wf-task-list-type":1,"number":6300094,"next-number":6300094,"logging-call-at":"taskWriter.go:176","stacktrace":"github.com/uber/cadence/common/log/loggerimpl.(*loggerImpl).Error\n\t/cadence/common/log/loggerimpl/logger.go:134\ngithub.com/uber/cadence/service/matching.(*taskWriter).taskWriterLoop\n\t/cadence/service/matching/taskWriter.go:176"}

有人知道为什么会这样吗?

共有1个答案

高才
2023-03-14

第一个原因是默认启用可见性采样(以保护默认核心数据库)。您可以通过配置系统.启用可见性采样为 false 来禁用它。

但是当您这样做时,最好将可见性和默认存储分离到不同的数据库集群中,这样可见性就不会导致默认(核心数据模型)数据库关闭。

查看 https://github.com/uber/cadence/issues/3884 的更多内容

第二个是0.16.0中修复的bug,如果升级服务器,应该解决。

查看 https://github.com/uber/cadence/pull/3627 和 https://docs.datastax.com/en/dse-trblshoot/doc/troubleshooting/recoveringTtlYear2038Problem.html

 类似资料:
  • 如果我使用mysql作为数据库的节奏,我知道如果分片是100,有100个表绑定到节奏中的历史服务。我的问题是,在这种情况下,匹配服务中的所有tastList,只会使用一个表?如何为匹配服务分片数据库? 如果所有的taskList都写入同一个表,就足够了吗?

  • 对于cadence来说,历史服务是一个响铃,因此如果一个新的历史服务被添加到历史服务中,每个历史服务将知道一个新的历史服务要加入。但是前端服务需要将请求路由到历史服务。前端服务如何知道还有一个历史服务要加入?

  • 我在Kubernetes环境中设置cadence时遇到了问题,详情如下 CADENCE_SERVER_IMAGE_VERSION:0.19.2 所有Cadence组件都在单个pod中运行 似乎Ringpop配置需要无头服务,但无头不适用于Istio 如果我只有一个Pod,那么一切都很好,但是一旦我创建了2个Pod,它们就开始争夺任务列表和碎片,这就是我的问题所在Ringpop配置:

  • 我的应用程序工作得很好,直到我开始摆弄spring boot和cucumber测试。我不能确切地说是哪里出了问题,但根据我的研究,这似乎是我的中的库依赖项不匹配 我得到的错误在下面

  • 在 Cadence 中部署代码期间,服务器重新启动功能如何工作?将重新启动哪些内容?它会仅重新启动 Cadence 服务,还是也会重新启动工作线程?如果重新启动工作人员,活动和工作流是否会从头开始重新启动?

  • 我在DNS名称服务器配置和DNS NS记录不一致方面遇到一些问题。 例如域名zzpeter。nl: 当执行是dns1。下一步。nl和dns2。下一步。净 但是在执行它返回ns1。未开发。com和ns2。未开发。通用域名格式。 当执行时,您可以真正看到发生了什么: 我可以从dig跟踪调用中获取已配置的名称服务器,并将其作为人工进行处理,但是是否也有一种方法可以以编程方式检索在注册器中配置的名称服务器