我可以选择在我的Postgres DB上同步ES和最新更改
1- Postgres收听/通知:
我应该创建一个trigger
- >使用pg_notify
- >并在一个单独的服务中创建监听器。
2- ES的异步查询:
我可以在更改数据库后异步更新ElasticSearch。即:
model.save().then(() => {model.saveES() }).catch()
哪一个会扩展得最好?
PS:我们在生产中试过了zombodb
,但效果并不顺利,这减慢了产量。
答案 0 :(得分:2)
我建议您考虑使用https://github.com/debezium/debezium。它具有Postgresql支持,并实现了其他帖子中提出的change capture
模型,而不是dual write
模型。
debezium的好处:
UPD。 Here is a simple github repository,以显示其工作原理
答案 1 :(得分:1)
在您寻求方法时,我假设您想知道应用更好的体系结构的可能性,我希望您提出融合的建议:
此处https://www.confluent.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/