微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复在 akka scala 中生成持久参与者时的断路器超时异常?

如何解决如何修复在 akka scala 中生成持久参与者时的断路器超时异常?

有没有人在 akka 上遇到持久系统的断路器超时。 我相信当 akka 无法重新加载保存的事件快照时会发生这种情况。我尝试通过调整 conf 并向其添加 snapshot-store-plugin-fallback.snapshot-is-optional = true 来绕过此重新加载。然而,这也无济于事。

我使用 jdbc-journaljdbc-snapshot-store 作为 snapshot-store.plugin

对此的任何帮助表示赞赏!

Supervisor StopSupervisor saw failure: Exception during recovery. Last kNown sequence number [0]. PersistenceId [UCPersistenceId],due to: Exception during recovery. Last kNown sequence number [0]. PersistenceId [UCPersistenceId],due to: Circuit Breaker Timed out.","context":"default","exception":"akka.persistence.typed.internal.JournalFailureException: Exception during recovery. Last kNown sequence number [0]. PersistenceId [UCPersistenceId],due to: Circuit Breaker Timed out.

我也在异常块之后收到此警告。

{"logger":"org.mariadb.jdbc.HostAddress","message":"aurora recommended connection URL must only use cluster end-point like \"jdbc:mariadb:aurora://xx.cluster-yy.zz.rds.amazonaws.com\". Using end-point permit auto-discovery of new replicas","context":"default"}

解决方法

断路器超时并不是真正的异常。它更像是另一个异常的症状,源异常。我建议查看数据库服务器日志以了解发生的实际异常。

,

正如@Debasish-Ghosh(我强烈推荐他的关于功能和反应域建模的书)所指出的,断路器异常只是另一个故障的征兆。

从警告来看,您似乎已将日志和/或快照配置为指向特定的 Aurora 副本而不是集群端点。如果该特定副本不可用,则与它的连接将失败并最终使断路器跳闸;这样做的效果是使读取或写入日志的尝试快速失败(以免消耗过多资源,并在失败是由于过载时让数据库有机会恢复)。

因此,对于这个特定问题,我建议在您的配置中使用 Aurora 集群端点,这应该会使副本不可用成为一个非问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。