分布式环境下的数据同步

一般而言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增加数据库负担、实现复杂度高

相关推荐
退役小学生呀10 小时前
十九、云原生分布式存储 CubeFS
分布式·docker·云原生·容器·kubernetes·k8s
smileNicky11 小时前
Kafka 为什么具有高吞吐量的特性?
分布式·kafka
小白不想白a17 小时前
【Hadoop】HDFS 分布式存储系统
hadoop·分布式·hdfs
随心............18 小时前
Spark面试题
大数据·分布式·spark
Hello.Reader20 小时前
用一根“数据中枢神经”串起业务从事件流到 Apache Kafka
分布式·kafka·apache
找不到、了1 天前
常用的分布式ID设计方案
java·分布式
AKAMAI2 天前
在分布式计算区域中通过VPC搭建私有网络
人工智能·分布式·云计算
面带微笑向前走2 天前
分布式集群压测+grafana+influxdb+Prometheus详细步骤
分布式·grafana·prometheus
何中应2 天前
分布式事务的两种解决方案
java·分布式·后端
诸葛务农2 天前
人形机器人——电子皮肤技术路线:光学式电子皮肤及MIT基于光导纤维的分布式触觉传感电子皮肤
分布式·机器人·wpf