使用定时器(使用sql定时的去查询数据进行同步)、实现方式比较简单。
实时性,消息放到MQ中,消费者会自动的消费,复杂性更高。
MQ方式保持数据一致性比较强,因为MQ能够自动重试、补偿。而logstash无法实现补偿、重试。
无法灵活的添加数据,比如你对添加进mysql中的数据进行一些聚合,查询等操作之后,再添加到es,这种操作插件很难实现。
比较容易实现,但是实时性不强,容错率低。
推荐方案:第二种,因为在MQ不丢失消息的前提下,MQ可以做到高可用和信息的持久化,很难出现消费端添加失败的情况,失败了也可以通过日志记录后处理。