专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
Java编程精选  ·  字节员工自曝:在强调一遍OD ... ·  昨天  
Java编程精选  ·  雷军删文,热搜第一! ·  2 天前  
芋道源码  ·  如何实现一个合格的分布式锁 ·  14 小时前  
51好读  ›  专栏  ›  芋道源码

4 种 MySQL 同步 ES 方案,yyds!

芋道源码  · 公众号  · Java  · 2025-05-18 21:05

正文

请到「今天看啥」查看全文


  • 2.3 基于 SQL 抽取
  • 2.4 基于 Binlog 实时同步
  • 3. 数据迁移工具选型
  • 4. 后记

  • 上周听到公司同事分享 MySQL 同步数据到 ES 的方案,发现很有意思,感觉有必要将这块知识点再总结提炼一下,就有了这篇文章。

    本文会先讲述数据同步的 4 种方案,并给出常用数据迁移工具 ,干货满满!

    1. 前言

    在实际项目开发中,我们经常将 MySQL 作为业务数据库,ES 作为查询数据库,用来实现读写分离,缓解 MySQL 数据库的查询压力,应对海量数据的复杂查询。

    这其中有一个很重要的问题,就是如何实现 MySQL 数据库和 ES 的数据同步,今天和大家聊聊 MySQL 和 ES 数据同步的各种方案。

    我们先看看下面 4 种常用的数据同步方案。

    基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

    • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
    • 视频教程:https://doc.iocoder.cn/video/

    2. 数据同步方案

    2.1 同步双写

    这是一种最为简单的方式,在将数据写到 MySQL 时,同时将数据写到 ES。

    优点:

    • 业务逻辑简单;
    • 实时性高。

    缺点:

    • 硬编码,有需要写入 MySQL 的地方都需要添加写入 ES 的代码;
    • 业务强耦合;
    • 存在双写失败丢数据风险;
    • 性能较差,本来 MySQL 的性能不是很高,再加一个 ES,系统的性能必然会下降。

    2.2 异步双写







    请到「今天看啥」查看全文