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

wordpress 静态文件济南seo顾问

wordpress 静态文件,济南seo顾问,php如何做网站,网站后台需要多少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.ds6.com.cn/news/60390.html

相关文章:

  • 做徽标的网站如何网上免费打广告
  • 天津外贸网站建设中囯联通腾迅
  • 襄阳做网站公司电话百度搜索引擎收录
  • 设计网站一般要多少钱百度域名
  • 和人妖做的视频网站百度收录要多久
  • 学会了dw就可以做网站吗seo网站页面优化包含
  • 哪里做外贸网站sem推广和seo的区别
  • 网站空间租用协议万能搜索
  • 建设部网站职责划定百度一级代理商
  • 武汉企业做网站找哪家好怎么在百度发广告
  • dede 网站图标网络推广营销方案免费
  • 动态网站开发j服务营销理论
  • 宁波网站建设哪家公司好谷歌官方app下载
  • c2c网站功能模块设计seo搜索排名
  • 网站背景图片怎么做百度营销登录平台
  • axure怎么做网站的抽屉导航全网营销推广平台有哪些
  • 如何自己建设商城网站seo分析网站
  • 网站因为备案关闭了 怎么办seo搜索引擎优化服务
  • 做app网站需要什么代运营网店公司
  • 网站开发 模块化软文平台发布
  • 做网站 支付账号免费吗上海最近3天疫情情况
  • 专门做反季的网站百度竞价是什么
  • html5国外网站模板html源码下载网站seo优化课程
  • react可以做门户网站么网络优化公司排名
  • 长沙公司网站开发软件开发公司有哪些
  • wordpress审核教程seo外包公司排名
  • 券妈妈网站是如何做的竞价外包
  • 网站建设10个基本步骤全球搜索
  • 淘宝客怎么做推广南昌网站seo
  • 医疗号网站开发化工seo顾问