+-
我可以选择在我的Postgres DB上同步ES和最新的更改
1- Postgres收听/通知:
我应该创建一个trigger
- >使用pg_notify
- >并在一个单独的服务中创建监听器。
2-对ES的异步查询:
我可以在更改DB后异步更新ElasticSearch。即:
model.save().then(() => {model.saveES() }).catch()
哪一个会扩展得最好?
PS:我们在生产中尝试过zombodb
,但效果不佳,它减缓了产量。
2
投票
投票
我建议你考虑https://github.com/debezium/debezium。它具有Postgresql支持并实现了在其他帖子中提出的change capture
模型,而不是dual write
模型。
debezium的好处:
低延迟变化流 存储复制日志中的更改以确定持久性 仅发出可以被消费并通过管道传输到其他系统的写事件(创建,更新,删除)。UPD。 Here is a simple github repository,展示了它的工作原理
1
投票
投票
正如你要求的方法,我想你想知道应用更好的架构的可能性,我希望你提出一个由汇合给出的建议:
这里https://www.confluent.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/