postgresql - Akka.net PostgreSQL Peristence 启动时间慢
问题描述
我们有一个 .NET 2.2 应用程序,我们将 Akka 和 Akka.Persistence 与 PostgreSQL 一起用于日志和快照。我们有一个包含大约 200 万个事件和 42,000 个唯一持久性 ID(所有 ID 都是 GUID)的大型日志。我们的应用程序的启动时间一直存在问题。有时,持久性参与者需要长达 20 分钟的时间才能做出响应。奇怪的是,即使对于有快照或没有日志事件的持久演员来说,它仍然需要很长时间。
在深入研究 PostgreSQL 日志后,我发现在启动时每次都会运行以下查询:
2020-01-10 07:37:13 UTC-5e1825a8.b4c04-LOG: duration: 966726.226 ms execute <unnamed>:
SELECT DISTINCT e.persistence_id as PersistenceId
FROM public.event_journal e
您可以看到这在我们的生产/测试环境中花费了很长时间,我认为这是启动缓慢的原因。
我想知道:
- 如果我已经为每个参与者提供了特定的持久性 id,为什么 Akka.Persistence 需要知道所有这些 id?
- 我能做些什么来禁用这种行为吗?理想情况下,我希望我们的启动时间接近于零。
谢谢您的帮助!
解决方案
推荐阅读
- google-apps-script - Google 表格应用程序脚本 Onformsubmit 触发功能不允许使用 driveapp 访问文件
- spring-boot - 如何在 Spring Boot 微服务应用程序中使用 Swagger-UI 配置具有隐式流的 OAuth2
- python - 带有验证电子邮件的 FastAPI 用户身份验证
- android-studio - Android Studio 在 USB 驱动器上运行:初始化脚本 sync.studio.tooling.gradle 似乎已损坏
- python - ModuleNotFoundError:没有名为“matrix_factorization”的模块
- swift - RealityKit,模型的可用动画数组始终为空
- c++ - 从签名cryptopp中提取哈希
- python - OS Walk 异常处理
- java - 在maven构建期间添加log4j1x和log4j2x依赖会导致重复类错误
- php - 即使使用本地主机,ftp_connect 也无法正常工作