当前位置: 首页 > news >正文

分布式环境下的数据同步

一般而言elasticsearch负责搜索(查询),而sql数据负责记录(增删改),elasticsearch中的数据来自于sql数据库,因此sql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步

常见的数据同步的方法

同步调用

在这里插入图片描述

基本步骤如下:

  • hotel-demo对外提供接口,用来修改elasticsearch中的数据
  • 酒店管理服务在完成数据库操作后,直接调用hotel-demo提供的接口,

3.1.2.异步通知

方案二:异步通知

流程如下:

  • hotel-admin对mysql数据库数据完成增、删、改后,发送MQ消息
  • hotel-demo监听MQ,接收到消息后完成elasticsearch数据修改

监听binlog

在这里插入图片描述

流程如下:

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

优缺点

方式一:同步调用
优点:实现简单,粗暴
缺点:业务耦合度高

方式二:异步通知
优点:低耦合,实现难度一般
缺点:依赖mq的可靠性

方式三:监听binlog
优点:完全解除服务间耦合
缺点:开启binlog增加数据库负担、实现复杂度高

http://www.lryc.cn/news/154985.html

相关文章:

  • 无涯教程-Flutter - 数据库
  • 算法笔记:平衡二叉树
  • redis 通用命令
  • Pycharm配置及使用Git教程
  • CSS transition 过渡
  • Unity中Shader的UV扭曲效果的实现
  • Automotive 添加一个特权APP
  • 自定义TimeLine
  • 如何使用SQL系列 之 如何在SQL中使用WHERE条件语句
  • leetcode:1941. 检查是否所有字符出现次数相同(python3解法)
  • Echarts 各种点击事件监听
  • 《智能网联汽车自动驾驶功能测试规程》
  • NVIDIA CUDA Win10安装步骤
  • Elasticsearch、Kibana以及Java操作ES 的快速使用
  • 逐鹿人形机器人,百度、腾讯、小米卷起来
  • AndroidStudio推荐下载和配置
  • mysql异常占用资源排查
  • requests 库:发送 form-data 格式的 http 请求 (python)
  • 行测图形推理规律(一)元素组成
  • 【python爬虫】13.吃什么不会胖(爬虫实操练习)
  • 深入理解联邦学习——联邦学习与现有理论的区别与联系
  • 基于Python+DenseNet121算法模型实现一个图像分类识别系统案例
  • 旋转图片两种方法
  • 10 mysql tiny/small/medium/big int 的数据存储
  • UI自动化测试之Jenkins配置
  • 电视盒子什么品牌好?数码博主盘点目前性能最好的电视盒子
  • 对于枚举类型的输出
  • solidity开发环境配置,vscode搭配remix
  • chatGPT生成代码--go组合算法
  • 推荐6款普通人搞副业做自媒体AI工具