实现ES和MySQL数据库同步解决方案

99封情书 提交于 2020-03-12 11:30:48

1. Logstash 实现ES 与数据库同步:

使用定时器(使用sql 定时的去查询数据进行同步)、实现方式比较简单。

2. MQ 实现 ES 与数据库同步:

实时性,消息放到MQ中,消费者会自动的消费,复杂性更高。

MQ方式保持数据一致性比较强,因为MQ能够自动重试、补偿。而logstash无法实现补偿、重试。

3. MySQL与ES的同步插件ElasticSearch-JDBC:

无法灵活的添加数据,比如你对添加进mysql中的数据进行一些聚合,查询等操作之后,再添加到es,这种操作插件很难实现。

4. 使用多线程代码实现,在进行MySQL的CRUD之后,开启一个线程,异步去调用ES的CRUD操作:

比较容易实现,但是实时性不强,容错率低。

推荐方案:第二种,因为在MQ不丢失消息的前提下,MQ可以做到高可用和信息的持久化,很难出现消费端添加失败的情况,失败了也可以通过日志记录后处理。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!