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

Elasticsearch的数据同步

elasticsearch中的数据多是来自数据库,当数据库发生改变时,elasticsearch也必须跟着改变,这个就叫做数据同步。

当我们是进行微服务的时候,同时两个服务不能进行相互调用的时候。就会需要进行数据同步

方法一:同步调用

当我们进行数据的删除或者新增的时候,先进行数据库的修改,这个时候再调用搜索功能的更新接口,然后再由搜索功能的服务进行elasticsearch的数据更新,当更新之后再进行依次回复。

上述方法问题:数据和业务的耦合,两个业务之间使得功能模块进行了耦合,同时也会出现效率下降的情况。同时当某一模块不可用的时候,会引起业务功能之间不能够使用,使各个模块之间进行了相互依赖,牵一发而动全身。

方法二:异步通知

当启动新增或者删除的业务的时候,数据库的更新操作还是不变,只不过在这个时候对MQ进行发送消息,进行通知,同时让搜索模块的服务监听着MQ的消息,收到消息之后再把elasticsearch进行数据的更新,最终实现异步通知的方法实现了数据的同步

解除了业务之间的耦合,同时也提高了性能。

方法三:监听binlog

在MySQL的主从复制的行为时,可以将binlog进行开启,这样当MySQL进行数据的更改的时候,使用canal中间件进行监听,最后通知搜索服务的elasticsearch的数据更新。

http://www.xdnf.cn/news/13901.html

相关文章:

  • 在线机考|2025年华为暑期实习春招秋招编程题(最新)——第2题_网络整改
  • 基于mapreduce的气候分析系统
  • Dify实战案例:AI邮件批量发送器!
  • Unit 3 Q-Learning 简介
  • 06-Python流程控制
  • [论文阅读] 人工智能 | ComfyUI-R1: Exploring Reasoning Models for Workflow Generation
  • JDBC接口开发指南
  • kali系统 windows Linux靶机入侵演练
  • 《Qt5.14.1与Mingw C++:打造可发布程序的技术之旅》
  • 实时监控、秒级决策:镜舟科技如何重塑融资融券业务数据处理模式
  • @SchedulerLock处理Spring Task在分布式环境下的重复执行问题
  • Transformer模型详解
  • leetcode 169. 多数元素
  • 数据结构-为什么双指针法可以用来解决环形链表?-使用O(1)的空间复杂度去解决环形链表的思路
  • React 基础状态管理方案
  • 基于Orange Pi Zero3的音频管理系统搭建与远程访问实现
  • ⭐ Unity 实现屏幕涟漪效果:自动生成 \ 点击交互生成涟漪
  • F5深化与Red Hat战略合作 ,赋能企业AI规模化安全部署
  • 开源综合性网络安全检测和运维工具-TscanClient
  • pikachu靶场通关笔记26 SQL注入09-时间盲注(base on time)
  • Python打卡训练营-Day29-复习日:类的装饰器
  • dify的知识库的父子分段和通用分段的对比
  • { C++ } —— string类的使用
  • 1年从零通过CISSP!
  • Day52 Python打卡训练营
  • LaViDa:基于扩散模型的多模态大模型,速度超越next-token范式
  • 海思网卡框架介绍
  • Application with id application_xxx doesn‘t exist in RM解决方法
  • 基于mapreduce的气候分析系统设计与实现
  • 创客匠人:为知识变现与 IP 打造赋能