国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】

這篇具有很好參考價(jià)值的文章主要介紹了ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

我們總結(jié)一下新搜索系統(tǒng)需要解決的幾個(gè)問題:

  • 海量請(qǐng)求。幾百萬的請(qǐng)求毫無壓力,上千萬上億也要可以扛得住。

  • 實(shí)時(shí)搜索。指的是當(dāng)一個(gè)用戶修改了其數(shù)據(jù)之后,另一個(gè)用戶能實(shí)時(shí)地搜索到改用戶。

海量請(qǐng)求。要扛得起海量的搜索請(qǐng)求,可以使用ElasticSearch來實(shí)現(xiàn),它是在Lucene的基礎(chǔ)上進(jìn)行封裝的一個(gè)開源項(xiàng)目,它將Lucene復(fù)雜的原理以及API封裝起來,對(duì)外提供了一個(gè)易用的API接口。ElasticSearch現(xiàn)在已經(jīng)廣泛地被許多公司使用,其中包括:愛奇藝、百姓網(wǎng)、58到家等公司。

實(shí)時(shí)搜索。阿里有一個(gè)開源項(xiàng)目Canal,就是用來解決這個(gè)問題的,Canal項(xiàng)目利用了MySQL數(shù)據(jù)庫主從同步的原理,將Canal Server模擬成一臺(tái)需要同步的從庫,從而讓主庫將binlog日志流發(fā)送到Canal Server接口。Canal項(xiàng)目對(duì)binlog日志的解析進(jìn)行了封裝,我們可以直接得到解析后的數(shù)據(jù),而不需要理會(huì)binlog的日志格式。而且Canal項(xiàng)目整合了zookeeper,整體實(shí)現(xiàn)了高可用,可伸縮性強(qiáng),是一個(gè)不錯(cuò)的解決方案。

經(jīng)過一段時(shí)間的技術(shù)預(yù)研,我們?cè)O(shè)計(jì)了整個(gè)搜索技術(shù)架構(gòu):

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

從架構(gòu)圖可以看出整個(gè)系統(tǒng)分為兩大部分:

  • Canal數(shù)據(jù)變更服務(wù)平臺(tái)。這部分負(fù)責(zé)解析MySQL的binlog日志,并將其解析后的數(shù)據(jù)封裝成特定的對(duì)象放到Kafka中。

  • Kafka數(shù)據(jù)消費(fèi)方。這部分負(fù)責(zé)消費(fèi)存放在Kafka中的消息,當(dāng)消費(fèi)方拿到具體的用戶表變更消息時(shí),將最新的用戶信息存放到ES數(shù)據(jù)倉庫中。

Canal技術(shù)變更基礎(chǔ)平臺(tái)


因?yàn)榭紤]到未來可能有其他項(xiàng)目需要監(jiān)控?cái)?shù)據(jù)庫某些表的變化,因此我們將Canal獲取MySQL數(shù)據(jù)變更部分做成一個(gè)公用的平臺(tái)。當(dāng)有其他業(yè)務(wù)需要增加監(jiān)控的表時(shí),我們可以直接修改配置文件,重啟服務(wù)器即可完成添加,極大地提高了開發(fā)效率。

在這一部分中,主要分為兩大部分:Canal Server 和 Canal Client。

Canal Server端。Canal Server偽裝成MySQL的一個(gè)從庫,使主庫發(fā)送binlog日志給 Canal Server,Canal Server 收到binlog消息之后進(jìn)行解析,解析完成后將消息直接發(fā)送給Canal Client。在Canal Server端可以設(shè)置配置文件進(jìn)行具體scheme(數(shù)據(jù)庫)和table(數(shù)據(jù)庫表)的篩選,從而實(shí)現(xiàn)動(dòng)態(tài)地增加對(duì)數(shù)據(jù)庫表的監(jiān)視。

Canal Client端。Canal Client端接收到Canal Server的消息后直接將消息存到Kafka指定Partition中,并將最新的binlogid發(fā)送給zookeeper集群保存。

Kafka消息消費(fèi)端


Canal技術(shù)變更平臺(tái)在獲取到對(duì)應(yīng)的數(shù)據(jù)庫變更消息后會(huì)將其放到指定的Kafka分片里,具體的業(yè)務(wù)項(xiàng)目需要到指定的Kafka片區(qū)里消費(fèi)對(duì)應(yīng)的數(shù)據(jù)變更消息,之后根據(jù)具體的業(yè)務(wù)需求進(jìn)行處理。

因?yàn)镃anal變化是根據(jù)表為最小單位進(jìn)行地,因此我在實(shí)現(xiàn)方面定義了一個(gè)以表為處理單位的MsgDealer接口:

  1. `public interface MsgDealer {`

  2. `void deal(CanalMsgVo canalMsgVo);`
    自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Java開發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲取?。。▊渥ava獲取)

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

最后

這份清華大牛整理的進(jìn)大廠必備的redis視頻、面試題和技術(shù)文檔

祝大家早日進(jìn)入大廠,拿到滿意的薪資和職級(jí)~~~加油??!

感謝大家的支持??!

ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】,程序員,elasticsearch,大數(shù)據(jù),搜索引擎

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》點(diǎn)擊傳送門即可獲?。?/strong>
74)]

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》,點(diǎn)擊傳送門即可獲?。?/strong>文章來源地址http://www.zghlxwxcb.cn/news/detail-845569.html

到了這里,關(guān)于ElasticSearch + Canal 開發(fā)千萬級(jí)的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于Canal實(shí)現(xiàn)Mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch(Docker版)

    基于Canal實(shí)現(xiàn)Mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch(Docker版)

    1、Canal簡(jiǎn)介 ??Canal主要用途是對(duì)MySQL數(shù)據(jù)庫增量日志進(jìn)行解析,提供增量數(shù)據(jù)的訂閱和消費(fèi),簡(jiǎn)單說就是可以對(duì)MySQL的增量數(shù)據(jù)進(jìn)行實(shí)時(shí)同步,支持同步到MySQL、Elasticsearch、HBase等數(shù)據(jù)存儲(chǔ)中去。 ??Canal會(huì)模擬MySQL主庫和從庫的交互協(xié)議,從而偽裝成MySQL的從庫,然后向My

    2024年02月10日
    瀏覽(92)
  • Springcloud Alibaba 使用Canal將MySql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch

    本篇文章在Springcloud Alibaba使用Canal將Mysql數(shù)據(jù)實(shí)時(shí)同步到Redis保證緩存的一致性-CSDN博客 基礎(chǔ)上使用canal將mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch。 公共包 實(shí)體類Sku @Column注解 用來標(biāo)識(shí)實(shí)體類中屬性與數(shù)據(jù)表中字段的對(duì)應(yīng)關(guān)系 name 定義了被標(biāo)注字段在數(shù)據(jù)庫表中所對(duì)應(yīng)字段的名稱;由

    2024年02月03日
    瀏覽(23)
  • QT 實(shí)現(xiàn)百萬級(jí)的數(shù)據(jù)顯示內(nèi)存消耗幾十兆

    QT 實(shí)現(xiàn)百萬級(jí)的數(shù)據(jù)顯示內(nèi)存消耗幾十兆

    用QT 開發(fā)了一個(gè)上位機(jī)的工具用來解析串口的數(shù)據(jù),數(shù)據(jù)量比較大 ,如果QT tableview 控件完全顯示,內(nèi)存消耗較大,所以解析結(jié)果先建立sql 數(shù)據(jù)索引,然后通過垂直滾動(dòng)條的變化動(dòng)態(tài)地獲取數(shù)據(jù),每次從數(shù)據(jù)庫中提取50條,測(cè)試下來內(nèi)存消耗較小,可以實(shí)現(xiàn)百萬或者千萬級(jí)的

    2024年02月11日
    瀏覽(26)
  • kafka千萬級(jí)數(shù)據(jù)積壓原因以及解決方案

    一、原因 kafka作為消息隊(duì)列,其中數(shù)據(jù)積壓也是經(jīng)常遇到的問題之一。 我們都知道,數(shù)據(jù)積壓的直接原因,一定是系統(tǒng)中的某個(gè)部分出現(xiàn)了性能問題,來不及處理上游發(fā)送的數(shù)據(jù),才會(huì)導(dǎo)致數(shù)據(jù)積壓。 那么我們就需要分析在使用kafka時(shí),如何通過優(yōu)化代碼以及參數(shù)配置來最大

    2024年02月12日
    瀏覽(23)
  • MySQL千萬級(jí)數(shù)據(jù)查詢的優(yōu)化技巧及思路

    隨著數(shù)據(jù)量的不斷增長(zhǎng),MySQL千萬級(jí)數(shù)據(jù)查詢的優(yōu)化問題也日益引人注目。在這篇文章中,我們將深入探討MySQL千萬級(jí)數(shù)據(jù)查詢優(yōu)化的方法和技巧,以幫助開發(fā)者更好地優(yōu)化MySQL性能。 數(shù)據(jù)庫設(shè)計(jì)是優(yōu)化查詢性能的關(guān)鍵,以下是一些可用的技巧: 垂直拆分和水平拆分 垂直拆分

    2024年02月10日
    瀏覽(21)
  • 千萬級(jí)數(shù)據(jù)深分頁查詢SQL性能優(yōu)化實(shí)踐

    如何在Mysql中實(shí)現(xiàn)上億數(shù)據(jù)的遍歷查詢?先來介紹一下系統(tǒng)主角:關(guān)注系統(tǒng),主要是維護(hù)京東用戶和業(yè)務(wù)對(duì)象之前的關(guān)注關(guān)系;并對(duì)外提供各種關(guān)系查詢,比如查詢用戶的關(guān)注商品或店鋪列表,查詢用戶是否關(guān)注了某個(gè)商品或店鋪等。但是最近接到了一個(gè)新需求,要求提供查

    2024年02月11日
    瀏覽(29)
  • 千萬級(jí)數(shù)據(jù)并發(fā)解決方案(理論+實(shí)戰(zhàn)) 高并發(fā)解決思路 方案

    千萬級(jí)數(shù)據(jù)并發(fā)解決方案(理論+實(shí)戰(zhàn)) 高并發(fā)解決思路 方案

    課程地址 項(xiàng)目地址 秒殺 高并發(fā) 新聞系統(tǒng) 超大數(shù)據(jù)量 一般的網(wǎng)站 寫入的少 讀取的次數(shù)多 模糊查詢 數(shù)據(jù)量少的時(shí)候可以用 like 數(shù)據(jù)量多的時(shí)候用 Elasticsearch搜索引擎 占用磁盤空間比較大 在laravel中 創(chuàng)建 要提前配置好數(shù)據(jù)庫 在Tests文件中寫入 運(yùn)行命令 php artisan app:tests 生成

    2024年02月08日
    瀏覽(27)
  • Java中處理千萬級(jí)數(shù)據(jù)的最佳實(shí)踐:性能優(yōu)化指南

    在今天的數(shù)字化時(shí)代,處理大規(guī)模數(shù)據(jù)已經(jīng)成為許多Java應(yīng)用程序的核心任務(wù)。無論您是構(gòu)建數(shù)據(jù)分析工具、實(shí)現(xiàn)實(shí)時(shí)監(jiān)控系統(tǒng),還是處理大規(guī)模日志文件,性能優(yōu)化都是確保應(yīng)用程序能夠高效運(yùn)行的關(guān)鍵因素。本指南將介紹一系列最佳實(shí)踐,幫助您在處理千萬級(jí)數(shù)據(jù)時(shí)提高

    2024年02月03日
    瀏覽(37)
  • 面試官:Mysql千萬級(jí)大表如何進(jìn)行深度分頁優(yōu)化?

    假如有一張千萬級(jí)的訂單表,這張表沒有采用分區(qū)分表,也沒有使用ES等技術(shù),分頁查詢進(jìn)行到一定深度分頁之后(比如1000萬行后)查詢比較緩慢,我們?cè)撊绾芜M(jìn)行優(yōu)化? 訂單表結(jié)構(gòu)如下: 其中 Mysql 版本為8.0。我們使用Python腳本向表中插入2000萬條數(shù)據(jù)。 導(dǎo)出數(shù)據(jù)時(shí)我們需

    2024年02月19日
    瀏覽(22)
  • 千萬級(jí)數(shù)據(jù)的表,我把慢sql優(yōu)化后性能提升30倍!

    千萬級(jí)數(shù)據(jù)的表,我把慢sql優(yōu)化后性能提升30倍!

    背景:系統(tǒng)中有一個(gè)統(tǒng)計(jì)頁面加載特別慢,前端設(shè)置的40s超時(shí)時(shí)間都加載不出來數(shù)據(jù),因?yàn)槭莻€(gè)統(tǒng)計(jì)頁面,基本上一猜就知道是mysql的語句有問題,遺留了很久沒有解決,正好趁不忙的時(shí)候,下定決心一定把它給搞定! (mysql5.7) 執(zhí)行一下問題sql,可以看到單表查就需要61s 這

    2024年02月14日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包