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

邢台市路桥建设公司网站/宣传推广方案

邢台市路桥建设公司网站,宣传推广方案,网站备案撤销原因,西安cms建站1. 背景与需求分析 门户平台需要实现对服务信息的高效查询,包括通过关键字搜索服务以及基于地理位置进行服务搜索。面对未来可能的数据增长和性能需求,选择使用 Elasticsearch 来替代 MySQL 的全文检索功能。这一选择的背景与需求可以总结为以下几点&am…

1. 背景与需求分析

门户平台需要实现对服务信息的高效查询,包括通过关键字搜索服务以及基于地理位置进行服务搜索。面对未来可能的数据增长和性能需求,选择使用 Elasticsearch 来替代 MySQL 的全文检索功能。这一选择的背景与需求可以总结为以下几点:

  • 关键字查询:用户可能需要通过服务的名称、描述、分类等信息进行关键字搜索,且搜索性能对用户体验至关重要。MySQL 提供了有限的全文检索能力,但在大数据量、高并发下的性能不如专门的搜索引擎。

  • 地理位置查询:系统要求支持基于用户地理位置的服务搜索,Elasticsearch 的 geo 查询功能专门用于解决此类地理坐标相关的查询,MySQL 在这方面的支持较为有限。

  • 数据增长预期:虽然当前数据量较小,但考虑到未来服务数据的增长(可能从几千条增长到几万或几十万条),需要一个能够横向扩展、应对海量数据的搜索解决方案。

  • 查询实时性与并发性能:门户系统的用户访问量较大,尤其是面向 C 端用户,要求搜索查询不仅需要高效,还要在数据更新后能及时反映变化。因此,对索引同步的实时性和查询性能有较高要求。

基于以上需求,采用了 Elasticsearch 作为搜索引擎,同时引入了 Canal + MQ 方案以实现索引的实时同步。

2. 技术方案设计

2.1 Elasticsearch 全文检索与地理位置查询

Elasticsearch 是一个分布式搜索引擎,基于 Lucene 构建,提供强大的全文检索、结构化查询和地理位置查询功能。选择它的原因包括:

  • 高效全文检索:基于倒排索引的数据结构,Elasticsearch 能够快速处理海量文本数据,支持各种查询方式(如模糊匹配、同义词匹配等)。

  • 地理位置查询:Elasticsearch 内置支持地理位置查询,能够高效处理基于地理坐标的距离计算和范围过滤查询,特别适用于服务场景中需要根据用户当前位置进行服务推荐的需求。

  • 分布式架构:Elasticsearch 通过分片和副本机制实现了良好的水平扩展能力,能够应对未来的数据增长和高并发查询。

2.2 Canal + MQ 实现索引同步

为了确保 Elasticsearch 的索引与数据库保持一致,项目采用了 Canal + MQ 的方式进行数据同步。

Canal会定时读取数据库的binlog日志,解析出增加、修改及删除的数据内容并将其写入MQ。

同步程序监听MQ,收到消息后根据消息内容请求ES同步索引数据。

  • Canal 的作用:Canal 是阿里巴巴开源的一款工具,专门用于解析 MySQL 的 binlog 日志,模拟 MySQL 从库的增量数据同步。在项目中,Canal 会实时监听数据库的增、删、改操作,并解析出具体的操作数据。

  • MQ 的作用:Canal 将解析后的数据变动事件(如新增、修改、删除操作)以消息的形式推送到消息队列(MQ)。MQ 起到了缓冲作用,确保系统的消息异步处理能力。当数据库发生大量数据变动时,消息可以在队列中被有序处理,避免 Elasticsearch 的索引更新被短时间内大量请求压垮。

  • 数据同步逻辑:监听到 MQ 中的消息后,系统中的同步程序会根据消息内容决定对 Elasticsearch 的操作:

    • 对新增的数据进行索引添加。
    • 对修改的数据进行索引更新。
    • 对删除的数据进行索引移除。

这种异步处理机制大大提高了系统的稳定性和扩展性,尤其是在高并发和高频率数据变更的场景下,能够有效减轻数据库的负担。

2.3 Canal简介

2.3.1 Canal是什么

canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,对数据进行同步,如下图:

8b167739093f4228850a13d301ce4259.png

Canal可与很多数据源进行对接,将数据由MySQL同步到ES、MQ、DB等各个数据源。

Canal的意思是水道/管道/沟渠,它相当于一个数据管道,通过解析MySQL的binlog日志完成数据同步工作。

官方文档:https://github.com/alibaba/canal/wiki

2.3.2 MySQL主从数据同步的原理

MySQL主从集群由MySQL主服务器(master)和MySQL从服务器(slave)组成,MySQL主从数据同步是一种数据库复制技术,进行写数据会先向主服务器写,写成功后将数据同步到从服务器,流程如下:

1、主服务器将所有写操作(INSERT、UPDATE、DELETE)以二进制日志(binlog)的形式记录下来。

2、从服务器连接到主服务器,发送dump 协议,请求获取主服务器上的binlog日志。

MySQL的dump协议是MySQL复制协议中的一部分。

3、MySQL master 收到 dump 请求,开始推送 binary log 给 slave

4、从服务器解析日志,根据日志内容更新从服务器的数据库,完成从服务器的数据保持与主服务器同步。

78775c8a09754555a35e630096248c72.png

2.3.3 Canal实现数据同步的原理

Canal伪装成从服务器,向主服务器发送dump 协议。

1、Canal模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议

MySQL的dump协议是MySQL复制协议中的一部分。

2、MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )

一旦连接建立成功,Canal会一直等待并监听来自MySQL主服务器的binlog事件流,当有新的数据库变更发生时MySQL master主服务器发送binlog事件流给Canal。

3、Canal会及时接收并解析这些变更事件并解析 binary log。

通过以上流程可知Canal和MySQL master主服务器之间建立了长连接。

b41d9756c52d4121a2fe93a0d033c76b.png

 

http://www.jmfq.cn/news/5317615.html

相关文章:

  • 中国城市建设控股集团有限公司网站/百度推广关键词怎么优化
  • 福州光电网站建设/惠州网站排名提升
  • 网站建设任务分解/网络营销策划方案怎么做
  • 晋城建设局官方网站/福州seo代理商
  • 劳务派遣东莞网站建设/精准信息预测
  • 优质高等职业院校建设网站/营销推广有哪些形式
  • 广东网站建设制作价格/2024年阳性最新症状
  • 新乡网站建设设计公司哪家好/怎样做网站平台
  • 广东高职一流专业建设专题网站/百度广告开户
  • 体育网站建设视频/种子搜索引擎torrentkitty
  • 傻瓜网站建设软件/seo排名优化技巧
  • 朝阳网站建设 高碑店/爱站长工具
  • 网站建设推广特色/品牌网站建设哪家好
  • 网站建设的方式有哪些/网络推广哪个好
  • 讯杰网站建设/石家庄百度快照优化
  • 技术支持:洛阳网站建设/百度入口网页版
  • 建设一个网站app需要多少钱/什么是seo站内优化
  • 网站建设的图片尺寸应该是像素/杭州seo优化公司
  • 网站建设与管理就业前景/免费crm
  • 建设新农村网站/太原seo外包服务
  • 网站建设大约多少钱/培训心得体会1000字通用
  • 宿州网站建设时间/手机app免费下载
  • 龙泉建设工程有限公司网站/站长工具传媒
  • 青岛东橙网站建设/淘宝推广平台有哪些
  • 郑州做营销型网站建设/制作一个简单的网站
  • 四川泰龙建设集团公司官方网站/淘宝关键词工具
  • 兰州网站建设ulezhi/温州seo网站推广
  • 政府 社区网站建设/互联网推广怎么找客户
  • 同学会网站建设方案/百度搜索引擎排名规则
  • 网站建设前期准备方案/怎样才能上百度