Uber Cadence を使用していますが、定期的に本番環境で問題が発生します。セットアップは次のとおりです。
- 1 つの Java 14 BE と Cadence クライアント 2.7.5
- Postgres DB を使用するケイデンス サービス バージョン 0.14.1
複数のドメインがあり、すべてのドメインに対して単一の BE サーバーがワーカーとして登録されます。
ログに表示されるのは、クエリ中に、ケイデンスが BE サービスへの固定性を失っているように見える場合があることです。
"msg":"query direct through matching failed on sticky, clearing sticky before attempting on non-sticky","service":"cadence-history","shard-id":1,"address":"10.1.1.111:7934"
"msg":"query directly though matching on non-sticky failed","service":"cadence-history","shard-id":1,"address":"10.1.1.111:7934"..."error":"code:deadline-exceeded message:timeout"
"msg":"query directly though matching on non-sticky failed","service":"cadence-history","shard-id":1,"address":"10.1.1.111:7934"..."error":"code:deadline-exceeded message:timeout"
"msg":"query directly though matching on non-sticky failed","service":"cadence-history","shard-id":1,"address":"10.1.1.111:7934"..."error":"code:deadline-exceeded message:timeout"
"msg":"query directly though matching on non-sticky failed","service":"cadence-history","shard-id":1,"address":"10.1.1.111:7934"..."error":"code:deadline-exceeded message:timeout"
...
その間、バックエンドでは何も見えません。ただし、この間にケイデンス Web クライアントでポーラーを確認すると、タスク リストが表示されますが、決定ハンドラーとは見なされなくなります (http://localhost:8088/domains/mydomain/task-リスト/mytasklist/ポーラー)。このため、決定を進めることができるものがないため、環境全体がほとんど死んでいます。唯一のオプションは、バックエンド サービスを再起動し、ワーカーとして再登録することです。
この時点で調査が行き詰まっているため、何らかの助けをいただければ幸いです。
- ワーカーまたはタスク リストが意思決定ハンドラーとしての能力を失う可能性があることを知っている人はいますか? ワーカーが生成したエラーの数に基づくなど、ケイデンスによって管理されていますか? これについては何も見つかりませんでした。
- 粘着性が失われると理解できるように、ケイデンスは別のワーカーがワークフローを再生して続行するかどうかを確認します (私の場合、これは 1 つしかないため、同じワーカーになります)。フローを再生できない可能性はありますか (ケイデンス クライアントからのバックエンド ログに何かが生成されると思いますが)、またはその時点でワーカーがリストから既に削除されているためにタイムアウトが発生する可能性はありますか?
どんな助けでも大歓迎です!ありがとう!