同步Postgres和ElasticSearch的最佳方法是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步Postgres和ElasticSearch的最佳方法是什么?相关的知识,希望对你有一定的参考价值。
我可以选择在我的Postgres DB上同步ES和最新的更改
1- Postgres收听/通知:
我应该创建一个trigger
- >使用pg_notify
- >并在一个单独的服务中创建监听器。
2-对ES的异步查询:
我可以在更改DB后异步更新ElasticSearch。即:
model.save().then(() => {model.saveES() }).catch()
哪一个会扩展得最好?
PS:我们在生产中尝试过zombodb
,但效果不佳,它减缓了产量。
我建议你考虑https://github.com/debezium/debezium。它具有Postgresql支持并实现了在其他帖子中提出的change capture
模型,而不是dual write
模型。
debezium的好处:
- 低延迟变化流
- 存储复制日志中的更改以确定持久性
- 仅发出可以被消费并通过管道传输到其他系统的写事件(创建,更新,删除)。
UPD。 Here is a simple github repository,展示了它的工作原理
正如你要求的方法,我想你想知道应用更好的架构的可能性,我希望你提出一个由汇合给出的建议:
这里https://www.confluent.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/
以上是关于同步Postgres和ElasticSearch的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章
如何在架构上同步应用程序工程师 (Postgres) 和数据工程师 (Redshift)
[elasticsearch怎么和数据库同步]elasticsearch和mysql的数据同步采用哪种方案合适。
ElasticSearch---ElasticSearch同步Mysql