MySQL 数据同步 Elasticsearch 的技术方案选型

news2024/11/19 18:24:48

文章目录

      • 1.同步双写
      • 2.异步双写
      • 3.定时任务
      • 4.数据订阅

1.同步双写

  • 优点:实现简单
  • 缺点:
    业务耦合,商品的管理中耦合大量数据同步代码
    影响性能,写入两个存储,响应时间变长
    不便扩展:搜索可能有一些个性化需求,需要对数据进行聚合,这种方式不便实现

2.异步双写

上架商品的时候, 先把商品数据丢入MQ, 为了解耦, 拆分一个搜索微服务, 搜搜微服务去订阅商品变动的信息, 完成同步

在这里插入图片描述

一些数据需要聚合处理成类似宽表的结构怎么办呢?例如商品库的商品品类、spu、sku表是分开的,但是查询是跨维度的,在ES里再聚合一次效率就低一些,最好就是把商品的数据给聚合起来,在ES里以类似大宽表的形式存储,这样一来查询效率就高一些。

在这里插入图片描述

  • 优点:
    解耦合,商品服务无需关注数据同步
    实时性较好,使用MQ,正常情况下,同步完成在秒级
  • 缺点:
    引入了新的组件和服务,增加了复杂度

3.定时任务

在这里插入图片描述

定时任务, 频率不好选择, 频率高的话, 会引起业务的波峰, 使得Cpu, 内存的上升, 频率低的话, 时效性比较差

  • 优点:实现比较简单
  • 缺点:
    实时性难以保证
    对存储压力较大

4.数据订阅

MySQL通过binlog订阅实现主从同步,各路数据订阅框架比如canal就依据这个原理,将client组件伪装成从库,来实现数据订阅。

在这里插入图片描述

cancal通过cancal-adpter, 支持多种适配器, 包括ES适配器, 通过配置, 启动之后, 就把Mysql的数据同步到Es上了

在这里插入图片描述

但是cancal还必须回查, 这个时候需要自己实现cancal-client, 监听和聚合数据, 写入Es

在这里插入图片描述

相比于异步双写, 可以降低商品的耦合性, 时效性更好

  • 优点:
    业务入侵较少
    实时性较好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/163275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jvm学习的核心(三)---运行时数据区详解(1)

图片等相关信息来源于:尚硅谷宋红康JVM全套教程 1.程序计数器 程序计数器又叫pc寄存器,中文有两个名字 我们可以反编译字节码文件查看方法中操作指令对应的指令地址 javap -v "对应的class文件"为什么要用pc寄存器,pc寄存器有什…

13、Javaweb_Filter登陆验证动态代理过滤敏感词Listener

Filter:过滤器 1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪、 * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 * 过滤器的作用&…

深入理解计算机系统_可执行目标文件和可重定位目标文件的3个区别

这篇笔记对比一下可执行目标文件和可执行目标的3个区别。下图分别是可重定位目标文件和可执行目标文件各段结构。 1.1 可执行目标文件和可重定位目标文件的3个区别 区别1:可执行目标文件的rel.text和.rel.data消失了 链接器将.o中.text和.data节整合到一起时&a…

【ROS2入门】理解 ROS 2 Topics 话题

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们一起了解ROS 2中节点的功能以及与之交互的工具, 这一篇,我们主要会围绕ROS中另外一个重要的…

RS232 RS485 TO ETH TCP-Modbus 测试

原来modbus 传感器都是有对应的指令码的,不同功能的指令码也不一样,比如测温度和湿度的指令码也是不一样的; 硬件连接如下图 (温湿度传感器,板载SHT20) ​ 编辑切换为居中 添加图片注释,不超…

华为VRRP、BFD实验配置

目录 VRRP实验配置 BFD实验配置 配置单跳检测 配置多跳检测 配置单臂回声 BFD与路由协议联动配置 BFD与OSPF联动 BFD与ISIS联动 BFD与BGP联动 VRRP实验配置 VRRP配置 AR1配置(VRRP缺省优先级100) int g0/0/0 ip add 192.168.10.1 24 vrrp vrid …

织音云站长扶持计划:可免费获得CDN或虚拟主机

活动介绍活动详情页:织音云站长扶持计划网站被恶意攻击时是中小站长最脆弱的时候,90%的站长都会动“关站不干了”的心思,夹在中间真的很难搞!因此织音云决定为中小站长提供免费的全球CDN加速服务和提供免费的虚拟主机,免备案!只需…

智改数转水循环在线监测系统,提升企业生产安

江苏省政府印发《江苏省制造业智能化改造和数字化转型三年行动计划(2022-2024年)》,提出通过三年的努力,全省制造业数字化、网络化、智能化水平显著提升,新业态、新模式、新动能显著壮大,制造业…

linux系统中使用QT操作硬件蜂鸣器的方法

大家好,今天主要和大家聊一聊,如何使用QT进行蜂鸣器的控制与实现。 目录 第一:资源基本简介 第二:应用实例的代码实现 第三:源文件“mainwindow.cpp”的具体实现 第四:程序运行效果 第一:资…

自动控制原理课程设计

一、实验目的(1)要求学生根据书上习题的要求,自行设计一校正装置,并用本 实验挂件 构成的模拟系统 进行实验和实际调试、使学生能认识到校正装置在系统中的重要性。(2)掌握工程中常用的 二阶系统 和 三阶系统 的工程设计方法。二、实验所需挂件及附件型 …

Docker 安装mysql主从复制

1、新建主服务器容器实例3307docker run -d -p 3307:3306 -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORDroot --name mysql-master mysql:5.72、进入/myd…

Acwing——第二场热身赛

题目链接 AcWing 3547. 特殊数字 AcWing 3548. 双端队列 AcWing 3549. 最长非递减子序列 题目描述 3547.特殊数字 我们规定,对于一个整数 a,如果其各位数字相加之和能够被 4 整除,则称它是一个特殊数字。 现在,给定一个整数 n…

算法第十一期——BFS(广度优先搜索)入门与应用

目录 BFS BFS:找最短路路径 BFS:用队列实现 特点 最短路径问题用BFS 应用场合 例题一 【思路】 输出路径的两种方法 简单方法 标准方法(栈) BFS:连通性判断 例题二:全球变暖 【思路】 BFS的三种实现 1、queue实现 2、 li…

分享66个Java源码,总有一款适合您

Java源码 分享66个Java源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 源码下载链接:https://pan.baidu.com/s/1wnPO7GfR_cVmDb2qx-4vEw?pwdlrsu …

Android 深入系统完全讲解(16)

2 属性权限 我们来看下属性权限的整体流程,简单分析下这个模块。init.cpp -->property_init() init 进程 进入第二阶段的时候,初始化属性。 关键点,创建了一个目录,这个目录就是我们属性后续会存在的地方。加载对应文件中的配…

[ADT笔记]图(graph)

定义 其实跟树差不多&#xff0c;但是树强调的是节点&#xff08;data&#xff09;&#xff0c;图则既强调节点又强调边。 分类 有向图&#xff08;边有方向&#xff09;无向图&#xff08;边没方向&#xff09; 例如&#xff0c;在无向图里<j,i>和<i,j>是同一…

(简单成功版本)Mysql配置my.ini文件

目录 一、背景 二、删除原有的mysql服务 三、初始化mysql 四、自行添加my.ini文件 五、新建mysql服务 六、启动mysql服务 七、设置数据库密码 7.1 登录mysql数据库 7.2 修改root用户密码 八、配置my.ini问题 一、背景 我在两台电脑上安装了MySQL Server 8.0&#xff0…

谈谈你对React的理解?

1、思路 讲讲概念、说用途、设计思路和原理、有什么优缺点 2、概念 一句话解释技术本质&#xff0c;React是javascript的UI库&#xff0c;通过组件化的方式解决视图层开发复用问题&#xff0c;本质是组件化框架。 viewfn(props) const A(props)><div>A</div&g…

java打包之jar和war为何出现又有什么区别

文章目录jar为什么诞生如何打jar包war为什么诞生如何打war包jar与war有什么区别jar与war的种类&#xff08;进阶&#xff09;参考资料jar为什么诞生 java工程有大量文件&#xff0c;在部署的时候需要向服务器上传大量文件&#xff0c;如果有了jar的话&#xff0c;只需上传一个…

鹅鹅鸭又崩了咋办?试试这5个方法

要说最近大火的游戏&#xff0c;鹅鹅鸭/鹅鸭杀绝对算一个。这种休闲策略游戏&#xff0c;还能跟朋友、家人约着一起玩。 不过最近很多玩家在玩鹅鹅鸭时都遇到闪退、卡顿、进不去等情况&#xff0c;虽然有太火爆服务器不稳定&#xff0c;服务器被攻击的原因&#xff0c;但有时候…