java - 每 30 秒查询一次 PostgreSQL 的有效方法?
问题描述
我需要从 AWS 中的某些 PostgreSQL 表中获取数据(有多少条记录等待处理)以进行报告。qry 的结果被发布到日志中,并被 FluentD 恶魔拾取并推送到 elasticsearch/Kibana。直接的方法是编写一个小型 Spring Boot 应用程序,每 30 秒左右 ping Db。我觉得这既低效又昂贵。有更好的方法吗?
感谢你的帮助。
解决方案
不是定期查询数据库,而是使用变更数据捕获 (CDC) 来生成变更事件流。使用流处理,将结果写入 Elasticsearch 索引。如果您不担心供应商锁定,您可以使用 AWS DMS、Kinesis 和 Lambda 来做到这一点。否则,您可以使用合适的 Kafka 连接器来读取更改并将事件发布到 Kafka。然后使用 Kafka 流将数据推送到 Elasticsearch。
推荐阅读
- javascript - 限制 Phaser3 更新率的方法?
- python - 这是什么错误,如何显示 .csv 文件中的前 5 个分数?
- visual-studio-code - 如何让 VSCode 使用 Chrome 进行调试
- postgresql - Azure Database for PostgreSQL 无法进行时间点还原
- wordpress - 如何在 wordpress 图库的所有图片中添加图片 alt 属性?
- google-bigquery - 当多个日期系列必须在单个表中表示时生成完整的日期系列
- python - 一次更新创建的对象django的字段
- swift - 根据今天的日期检查 CoreData
- google-apps-script - 汇总同一日期对应的时间值
- reactjs - reactide 未在 Windows 10 中设置,导致执行 yarn run build 时出现问题