同步Postgres和ElasticSearch的最佳方法是什么?

SOu*_*dil 1 postgresql elasticsearch

我可以选择将ES与Postgres DB上的最新更改同步

1- Postgres收听/通知:

我应该创建trigger->使用pg_notify->并在单独的服务中创建侦听器。

2-异步查询到ES:

在更改数据库后,我可以异步更新ElasticSearch。即:

model.save().then(() => {model.saveES() }).catch()

哪一个规模最佳?

PS:我们zombodb在生产中尝试过,但是效果不佳,它减慢了生产速度。

pan*_*ore 9

当您询问方法时,我假设您想知道应用更好架构的可能性,我希望您提出 confluence 给出的建议:

在此输入图像描述

在此输入图像描述

这里https://www.confluence.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/


Lea*_*ner 5

我建议您考虑https://github.com/debezium/debezium。它具有Postgresql支持,并实现了change capture其他文章中提出的模型而不是dual write模型。

debezium的好处:

  • 低延迟更改流
  • 将更改存储在复制日志中以确保持久性
  • 仅发出可被使用并通过管道传输到其他系统的写入事件(创建,更新,删除)。

UPD。 这是一个简单的github存储库,显示了它是如何工作的