mysql和elastic search数据同步方案

elastic search 同时被 2 个专栏收录
12 篇文章 2 订阅

方案一

利用es api实时写入es中

优点:实时性高,能灵活控制写入es的时间

缺点:同步方案与业务逻辑耦合,严重依赖于es api,破坏了原有业务程序逻辑

demo:https://blog.csdn.net/fanrenxiang/article/details/86509688

备注:实时同步的场景比较多,比如后台维护(CRUD)基础数据或者接口调用时候,把es同步写逻辑加入到之前的业务逻辑中,但是写入es这个操作还是要放到kafka这样的消息组件中,像kafka这样子的支持高并发消息读写的组件能较好的解决并发时候数据写入es的问题,这也是为了不影响原来业务逻辑接口响应。同步写入方案里要额外注意,有的时候写入es失败,要采取适当的写入重试策略,并失败的数据集,做好持久化记录,人工或定时任务补偿。


方案二

监听mysql的二进制日志,分析binlog将其同步到es中

优点:同步方案和业务逻辑解耦,没有任何关联,业务逻辑无需关系同步

缺点:二进制日志格式binlog_format必须为row,同时引入了新的同步服务,增加了额外的风险和运维成本

demo:https://github.com/siddontang/go-mysql-elasticsearch

备注:要做好同步服务的监听和报警机制

1.canal 监听binlog写入kafka  消费kafka消息写入ES

2.用river插件 写sql,定时同步到es

3.用logstash实现实时同步


同步方案技术选型要根据你的项目实际情况选择,如果你的搜索请求要求实时性高一些,由于监听mysql二进制日志的方案相当于异步同步,所以实时性相对同步写入会慢一些,所以可以考虑使用es api实时写入es的方案。

books 上一篇: Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo

  • 3
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

饭一碗

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值