分布式环境下的数据同步

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

相关推荐
跟着珅聪学java8 小时前
在电商系统中,如何确保库存扣减的原子性
分布式
JH307310 小时前
Redisson 看门狗机制:让分布式锁“活”下去的智能保镖
分布式
一点 内容11 小时前
深入理解分布式共识算法 Raft:从原理到实践
分布式·区块链·共识算法
8Qi811 小时前
分布式锁-redission
java·redis·分布式·redisson
12 小时前
鸿蒙——分布式数据库
数据库·分布式
Hui Baby12 小时前
分布式多阶段入参参数获取
分布式
阿拉斯攀登15 小时前
Spring Cloud Alibaba 生态中 RocketMQ 最佳实践
分布式·微服务·rocketmq·springcloud·cloudalibaba
无锡布里渊15 小时前
感温光纤 DTS 系统 vs 感温电缆 对比分析报告
分布式·实时监测·分布式光纤测温·线型感温火灾监测·感温电缆
g323086315 小时前
分布式框架seata AT模式源码分析
java·数据库·分布式
哇哈哈&16 小时前
如何进行卸载rabbitmq
分布式·rabbitmq