我们已经尝试使用postgres全文搜索,但是我们需要更强大且更省力的工具。
经过一些研究,我们了解了事件驱动的体系结构,Rabbit MQ和Kafka等,以保持弹性和数据库同步。从我们的API发出弹性请求似乎比异步请求更具可扩展性。
有人对我们的问题有其他替代解决方案吗?任何建议阅读?我们发现这件事上缺乏资源。
谢谢。
您应该考虑使用Logstash。它是弹性堆栈的一部分。在Logstash中,您定义由输入,过滤器和输出插件组成的管道。
有一个jdbc-input-plugin可以完美满足您的用例。使用此输入插件,您可以配置目标数据库连接,凭据和将获取相关数据的sql语句。此外,您可以定义cron间隔来执行sql语句,例如每60秒。
这是使Elasticsearch与Postgres保持同步的方式。
使用过滤器插件,您可以使用多种内置的“功能”来转换事件(=记录),例如重命名,正则表达式解析,删除事件等。最后一步是定义一个elasticsearch输出插件,该插件将获取的,可能经过转换的事件发送到elasticsearch,并指定目标索引。
您应该看一下这些文章: