mysql与ES实现数据同步

mysql和ES实现数据同步 思路分析 常见的数据同步方案有三种: 同步调用异步通知监听binlog 同步调用 基本步骤如下: 服务1对外提供接口,用来修改elasticsearch中的数据服务2在完成数据库...

mysql和ES实现数据同步

思路分析

常见的数据同步方案有三种:

  • 同步调用
  • 异步通知
  • 监听binlog

同步调用

基本步骤如下:

  • 服务1对外提供接口,用来修改elasticsearch中的数据
  • 服务2在完成数据库操作后,直接调用服务1提供的接口,

attachments-2022-06-MVVmFS4W62a72a4c08d79,png

异步通知

  • 服务2对mysql数据库数据完成增、删、改后,发送MQ消息
  • 服务1监听MQ,接收到消息后完成elasticsearch数据修改

attachments-2022-06-iT71vSQQ62a72a6c7719a,png

监听binlog

  • 给mysql开启binlog功能
  • mysql完成增、删、改操作都会记录在binlog中
  • 服务1基于canal监听binlog变化,实时更新elasticsearch中的内容

attachments-2022-06-ldL3C4lL62a72a85bfe0c,png

选择方案

方式一:同步调用

  • 优点:实现简单,粗暴
  • 缺点:业务耦合度高

方式二:异步通知

  • 优点:低耦合,实现难度一般
  • 缺点:依赖mq的可靠性

方式三:监听binlog

  • 优点:完全解除服务间耦合
  • 缺点:开启binlog增加数据库负担、实现复杂度高
  • 发表于 2022-06-13 20:16
  • 阅读 ( 33 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章