tsx81428 发表于 2024-6-15 03:39:25

【微服务】mysql + elasticsearch数据双写计划与实现

目录

一、媒介
二、为什么使用mysql+es双写
2.1 单用mysql的标题
2.2 为什么不直接使用es
2.2.1 非关系型表达
2.2.2 不支持事务
2.2.3 多字段将造成性能低下
三、mysql+es双写方案计划要点
3.1 全新计划 VS 中途调整架构
3.2 全表映射 VS 关键字段存储
3.2.1 最大水平发挥es性能
3.2.2 选择mysql还是es作为数据托底
3.3 数据一致性保障
3.3.1 同步双写
3.3.2 异步双写
3.3.3 定期同步
3.3.4 数据订阅
四、mysql+es双写方案数据迁移
4.1 数据迁移团体方案
4.1.1 创建索引
4.1.2 双写改造
4.1.3 数据迁移
4.1.4 搜索服务上线
4.2 数据迁移补充说明
五、方案实行
5.1 前置准备
5.1.1 搭建情况
5.1.2 创建数据表
5.1.3 插入初始化数据
5.1.4 创建一个索引
5.2 搭建springboot工程
5.2.1 引入基础依靠
5.2.2 核心设置文件
5.2.3 es客户端连接设置
5.2.3 mybatis文件
5.2.4 业务实现类
5.2.4 相关测试
5.3 双写业务实现
5.4 数据搜索
5.5 数据迁移
六、写在文末

一、媒介

在许多电商网站中,对商品的搜索要求很高,主要体如今页面快速相应搜索效果。这就对服务端接口相应速度提出了很高的要求。而商品数据存储离不开mysql,在高并发场景下,尤其是数据规模达到一定量级,mysql的性能瓶颈一定会出现,为了满足极致的搜索速度,往往需要借助第三方存储,比如nosql数据库,当然主流的搭配还是使用搜索引擎来完成,于是在许多场景下,会选择mysql+elasticsearch来满足这个场景下对搜索的要求。
https://img-blog.csdnimg.cn/4d3cdd9bfa604a17a95d835f47acf88d.png
如下是一个典型的使用mysql+es实现数据双写的应用场景。
https://img-blog.csdnimg.cn/3f25bf37bc1c4e5c934281b644693667.png
二、为什么使用mysql+es双写



2.1 单用mysql的标题


在许多

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【微服务】mysql + elasticsearch数据双写计划与实现