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

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.背景

2020年以來內(nèi)容標(biāo)注結(jié)果搜索就是社區(qū)中后臺(tái)業(yè)務(wù)的核心高頻使用場景之一,為了支撐復(fù)雜的后臺(tái)搜索,我們將社區(qū)內(nèi)容的關(guān)鍵信息額外存了一份到Elasticsearch中作為二級(jí)索引使用。隨著標(biāo)注業(yè)務(wù)的細(xì)分、迭代和時(shí)間的推移,這個(gè)索引的文檔數(shù)和搜索的RT開始逐步上升。

下面是這個(gè)索引當(dāng)前的監(jiān)控情況。

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

本文介紹社區(qū)利用IndexSorting,將億級(jí)文檔搜索性能由最開始2000ms優(yōu)化到50ms的過程。如果大家遇到相似的問題和場景,相信看完之后一定能夠一行代碼成噸收益。

2.探索過程

2.1 初步優(yōu)化

最開始需求很簡單,只需要取最新發(fā)布的動(dòng)態(tài)分頁展示。這時(shí)候?qū)崿F(xiàn)也是簡單粗暴,滿足功能即可。查詢語句如下:

GET /content-alias/_search
{
  "track_total_hits": true,
  "sort": [
    {
      "publish_time": {
        "order": "desc"
      }
    }
  ],
  "size": 10
}

由于首頁加載時(shí)沒加任何篩選條件,于是變成了從億級(jí)內(nèi)容庫中找出最新發(fā)布的10條內(nèi)容

針對(duì)這個(gè)查詢很容易發(fā)現(xiàn)問題出現(xiàn)在大結(jié)果集的排序,要解決問題,自然的想到了兩條路徑:

  1. 去掉sort

  2. 縮小結(jié)果集

經(jīng)過用戶訴求和開發(fā)成本的權(quán)衡后,當(dāng)時(shí)決定“先扛住,再優(yōu)化”:在用戶打開首頁的時(shí)候,默認(rèn)增加“發(fā)布時(shí)間在最近一周內(nèi)”的篩選條件,這時(shí)語句變成了:

GET /content-alias/_search
{
  "track_total_hits": true,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "publish_time": {
              "gte": 1678550400,
              "lt": 1679155200
            }
          }
        }
      ]
    }
  },
  "sort": [
    {
      "publish_time": {
        "order": "desc"
      }
    }
  ],
  "size": 10
}

這個(gè)改動(dòng)上線后,效果可以說是立竿見影,首頁加載速度立馬降到了200ms以內(nèi),平均RT60ms。這次改動(dòng)也為我們減小了來自業(yè)務(wù)的壓力,為后續(xù)的優(yōu)化爭取了不少調(diào)研的時(shí)間。

雖然搜索首頁的加載速度明顯快了,但是并沒有實(shí)際解決根本問題——ES大結(jié)果集指定字段排序還是很慢。對(duì)業(yè)務(wù)來說,結(jié)果頁上的一些邊界功能的體驗(yàn)依舊不能盡如人意,比如導(dǎo)出、全量動(dòng)態(tài)的搜索等等。這一點(diǎn)從監(jiān)控上也能夠較明顯的看出:慢查詢還是存在,并且還伴隨著少量的接口超時(shí)。

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

老實(shí)說這個(gè)時(shí)期我們對(duì)于ES的了解還比較基礎(chǔ),只能說會(huì)用、知道分片、倒排索引、相關(guān)性打分,然后就沒有了。總之我們有了方向,開始奮起直追。

2.2 細(xì)致打磨

2.2.1 知識(shí)積累

帶著之前遺留的問題,我們開始開始重新出發(fā),從頭學(xué)習(xí)ES。要優(yōu)化搜索性能,首先我們要知道的是搜索是怎么做的。下面我們就以一個(gè)最簡單的搜索為例,拆解一下整個(gè)搜索請(qǐng)求的過程。

(1)搜索請(qǐng)求

GET /content-alias/_search
{
  "track_total_hits":false,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "category_id.keyword": "xxxxxxxx"
          }
        }
      ]
    }
  }, 
  "size": 10
}

?

精確查詢category_id為"xxxxxxxx"的文檔,取10條數(shù)據(jù),不需要排序,不需要總數(shù)

總流程分3步:

  1. 客戶端發(fā)起請(qǐng)求到Node1

  2. Node1作為協(xié)調(diào)節(jié)點(diǎn),將請(qǐng)求轉(zhuǎn)發(fā)到索引的每個(gè)主分片或副分片中,每個(gè)分片在本地執(zhí)行查詢。

  3. 每個(gè)節(jié)點(diǎn)返回各自的數(shù)據(jù),協(xié)調(diào)節(jié)點(diǎn)匯總后返回給客戶端

如圖可以大致描繪這個(gè)過程:

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

我們知道ES是依賴Lucene提供的能力,真正的搜索發(fā)生在Lucene中,還需要繼續(xù)了解Lucene中的搜索過程。

(2)Lucene

Lucene中包含了四種基本數(shù)據(jù)類型,分別是:

  • Index:索引,由很多的Document組成。

  • Document:由很多的Field組成,是Index和Search的最小單位。

  • Field:由很多的Term組成,包括Field Name和Field Value。

  • Term:由很多的字節(jié)組成。一般將Text類型的Field Value分詞之后的每個(gè)最小單元叫做Term。

在介紹Lucene index的搜索過程之前,這里先說一下組成Lucene index的最小數(shù)據(jù)存儲(chǔ)單元——Segment。

Lucene index由許許多多的Segment組成,每一個(gè)Segment里面包含著文檔的Term字典、Term字典的倒排表、文檔的列式存儲(chǔ)DocValues以及正排索引。它能夠獨(dú)立的直接對(duì)外提供搜索功能,幾乎是一個(gè)縮小版的Lucene index。

(3)Term字典和倒排表

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

上圖是Term字典和其倒排表的大致樣子

當(dāng)然這里還有些重要數(shù)據(jù)結(jié)構(gòu),比如:

  • FST:term索引,在內(nèi)存中構(gòu)建??梢钥焖賹?shí)現(xiàn)單Term、Term范圍、Term前綴和通配符查詢。

  • BKD-Tree:用于數(shù)值類型(包括空間點(diǎn))的快速查找。

  • SkipList:倒排表的數(shù)據(jù)結(jié)構(gòu)

這里面的細(xì)節(jié)比較多,感興趣的可以單獨(dú)了解,這里不影響我們的整體搜索流程,不過多贅述。

有了Term字典和倒排表我們就能直接拿到搜索條件匹配的結(jié)果集了,接下來只需要通過docID去正排索引中取回整個(gè)doc然后返回就完事兒了。

這是ES的基本盤理論上不會(huì)慢,我們猜測慢查詢發(fā)生在排序上。那給請(qǐng)求加一個(gè)排序會(huì)發(fā)生什么呢?比如:

GET /content-alias/_search
{
  "track_total_hits":false,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "category_id.keyword": "xxxxxxxx"
          }
        }
      ]
    }
  }, 
  "sort": [
    {
      "publish_time": {
        "order": "desc"
      }
    }
  ],
  "size": 10
}

通過倒排表拿到的docId是無序的,現(xiàn)在指定了排序字段,最簡單直接的辦法是全部取出來,然后排序取前10條。這樣固然能實(shí)現(xiàn)效果,但是效率卻是可想而知。那么Lucene是怎么解決的呢?

(4)DocValues

倒排索引能夠解決從詞到文檔的快速映射,但需要對(duì)檢索結(jié)果進(jìn)行分類、排序、數(shù)學(xué)計(jì)算等聚合操作時(shí)需要文檔號(hào)到值的快速映射。而正排索引又過于臃腫龐大,怎么辦呢?

這時(shí)候各位大佬可能就直接想到了列式存儲(chǔ),沒有錯(cuò),Lucene就引入了基于docId的列式存儲(chǔ)結(jié)構(gòu)——DocValues

文檔號(hào)

列值

列值映射

0

2023-01-13

2

1

2023-01-12

1

2

2023-03-13

3

比如上表中的DocValues=[2023-01-13, 2023-01-12,2023-03-13]

如果列值是字符串,Lucene會(huì)把原來的字符串值按照字典排序生成數(shù)字ID,這樣的預(yù)處理能進(jìn)一步加快排序速度。于是我們得到了DocValues=[2, 1, 3]

Docvalues的列式存儲(chǔ)形式可以加快我們的遍歷的速度。到這里一個(gè)常規(guī)的搜索取前N條記錄的請(qǐng)求算是真正的拆解完成。這里不討論詞頻、相關(guān)性打分、聚合等功能的分析,所以本文對(duì)整個(gè)過程和數(shù)據(jù)結(jié)構(gòu)做了大幅簡化。如果對(duì)這部分感興趣,歡迎一起討論。

此時(shí)排序慢的問題也逐漸浮出了水面:盡管Docvalues又是列式存儲(chǔ),又是將復(fù)雜值預(yù)處理為簡單值避免了查詢時(shí)的復(fù)雜比較,但是依舊架不住我們需要排序的數(shù)據(jù)集過大。

看起來ES盡力了,它好像確實(shí)不擅長解決我們這個(gè)場景的慢查詢問題。

不過有靈性的各位讀者肯定想到了,如果能把倒排表按照我們預(yù)先指定的順序存儲(chǔ)好,就能省下整個(gè)排序的時(shí)間

2.2.2 IndexSorting

很快ES官方文檔《How to tune for search speed》中提到了一個(gè)搜索優(yōu)化手段——索引排序(Index Sorting)出現(xiàn)在了我們的視野中。

從文檔上的描述我們可以知道,索引排序?qū)τ谒阉餍阅艿奶嵘饕趦蓚€(gè)方面:

  1. 對(duì)于多條件并列查詢(a and b and ...),索引排序可以幫助我們把不符合條件的文檔存在一起,跳過大量的不匹配的文檔。但是此技巧僅適用于經(jīng)常用于篩選的低基數(shù)字段。

  2. 提前中斷:當(dāng)搜索排序和索引排序指定的順序一樣時(shí),只需要比較每個(gè)段的前 N 個(gè)文檔,其他的文檔僅需要用于總數(shù)計(jì)算。比如:我們的文檔中有一個(gè)時(shí)間戳,而我們經(jīng)常需要按照時(shí)間戳來搜索和排序,這時(shí)候如果指定的索引排序和搜索排序一致,通常能夠極大的提高搜索排序的效率。

提前中斷?。?!簡直是缺什么來什么,于是我們開始圍繞這一點(diǎn)展開調(diào)研。

(1)開啟索引排序

PUT /content
{
    "settings": {
        "index": {
            "sort.field": "publish_time", // 可指定多個(gè)字段
            "sort.order": "desc"
        }
    },
    "mappings": {
        "properties": {
            "content_id": {
                "type": "long"
            },
            "publish_time": {
                "type": "long"
            },
            ...
        }
    }
}

如上面的例子,文檔在寫入磁盤時(shí)會(huì)按照 publish_time 字段的遞減序進(jìn)行排序。

在前面的段落中我們反復(fù)提到了docID和正排索引。這里我們順帶簡單介紹下他們的關(guān)系,首先Segment中的每個(gè)文檔,都會(huì)被分配一個(gè)docID,docID從0開始,順序分配。在沒有IndexSorting時(shí),docID是按照文檔寫入的順序進(jìn)行分配的,在設(shè)置了IndexSorting之后,docID的順序就與IndexSorting的順序一致。

下圖描述了docID和正排索引的關(guān)系:

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

?那么再次回頭來看看我們最開始的查詢:?

在Lucene中進(jìn)行查詢時(shí),發(fā)現(xiàn)結(jié)果集的倒排表順序剛好是publish_time降序排序的,所以查詢到前10條數(shù)據(jù)之后即可返回,這就做到了提前中斷,省下了排序開銷。那么代價(jià)是什么呢?

(2)代價(jià)

IndexSorting和查詢時(shí)排序不一樣,本質(zhì)是在寫入時(shí)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。所以排序字段只能在創(chuàng)建時(shí)指定且不可更改。并且由于寫入時(shí)要對(duì)數(shù)據(jù)進(jìn)行排序,所以也會(huì)對(duì)寫入性能也會(huì)有一定負(fù)面影響。

之前我們提到了Lucene本身對(duì)排序也有各種優(yōu)化,所以如果搜索結(jié)果集本身沒有那么多的數(shù)據(jù),那么就算不開啟這個(gè)功能,也能有不錯(cuò)的RT。

另外由于多數(shù)時(shí)候還是要計(jì)算總數(shù),所以開啟索引排序之后只能提前中斷排序過程,還是要對(duì)結(jié)果集的總數(shù)進(jìn)行count。如果能夠不查總數(shù),或者說通過另外的方式獲取總數(shù),那么能夠更好的利用這個(gè)特性。

小結(jié):

  1. 針對(duì)大結(jié)果集的排序取前N條的場景下,索引排序能顯著提高搜索性能。

  2. 索引排序只能在創(chuàng)建索引時(shí)指定,不可更改。如果你有多個(gè)指定字段排序的場景,可能需要慎重選擇排序字段。

  3. 不獲取總數(shù)能更好的利用索引排序

  4. 開啟索引排序會(huì)一定程度降低寫性能。這里貼一條ElaticsearchBenchmarks的數(shù)據(jù)截圖供大家參考。

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

見:Elasticsearch Benchmarks

2.3 效果

由于我們的業(yè)務(wù)遠(yuǎn)遠(yuǎn)沒有達(dá)到ES的寫入瓶頸,而且也少有頻繁變更排序字段的場景。在經(jīng)過短暫的權(quán)衡之后,確定索引排序正是我們需要的,于是開始使用線上真實(shí)數(shù)據(jù)對(duì)索引排序的效果進(jìn)行簡單的性能測試。

(1)性能測試:首頁

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

(2)性能測試:其他

這里開啟索引排序后,隨機(jī)幾個(gè)常規(guī)條件和時(shí)間窗口的搜索組合測試

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

可以看到效果非常明顯,沒有以前的那種尖刺,RT也很穩(wěn)定,于是我們決定正式上線這個(gè)功能。

(3)線上效果

慢查詢

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

整體前后對(duì)比

得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

和我們預(yù)期的基本一樣,搜索RT大幅降低,慢查詢完全消失。

2.4?后續(xù)優(yōu)化

在探索過程中,其實(shí)還發(fā)現(xiàn)了一些其他的優(yōu)化手段,鑒于開發(fā)成本和收益,有些我們并沒有完全應(yīng)用于生產(chǎn)環(huán)境。這里列出其中幾點(diǎn),希望能給大家一些啟發(fā)。

  1. 不獲取總數(shù): 大部分場景下,不查詢總數(shù)都能減少開銷,提高性能。ES 7.x之后的搜索接口默認(rèn)不返回總數(shù)了,由此可見一斑。

  2. 自定義routing規(guī)則: 從上文的查詢過程我們可以看到,ES會(huì)輪詢所有分片以獲取想要的數(shù)據(jù),如果我們能控制數(shù)據(jù)的分片落點(diǎn),那么也能節(jié)省不少開銷。比如說:如果我們將來如果有大量的場景都是查某個(gè)用戶的動(dòng)態(tài),那么可以控制按照用戶分片,這樣就避免了分片輪詢,也能提升搜索效率。

  3. keyword: 不是所有的數(shù)字都應(yīng)該按照數(shù)值字段來存,如果你的數(shù)字值很少用于范圍查詢,但是經(jīng)常被用作term查詢,并且對(duì)搜索rt很敏感。那么keyword才是最適合的存儲(chǔ)方式。

  4. 數(shù)據(jù)預(yù)處理:就像IndexSoting一樣,如果我們能夠在寫入時(shí)預(yù)處理好數(shù)據(jù),也能節(jié)省搜索時(shí)的開銷。這一點(diǎn)配合_ingest/pipeline?也許能發(fā)揮意想不到的效果。

3.寫在最后

相信看到這里的大家都能看出,我們的優(yōu)化中也沒有涉及到十分高深的技術(shù)難點(diǎn),我們只是在解決問題的過程中,逐步從小白轉(zhuǎn)變成了一個(gè)初學(xué)者。來一個(gè)大牛也許從一開始就能直接繞過我們的彎路,不過萬里之行始于足下,最后這里總結(jié)一點(diǎn)經(jīng)驗(yàn)和感受分享給大家,希望能給與我們一樣的初學(xué)者一些參考。

ES在大結(jié)果集指定字段排序的場景下性能不佳,我們使用時(shí)應(yīng)該盡量避免出現(xiàn)這種場景。如果無法避免,合適的IndexSorting設(shè)置能大幅提升排序性能。

優(yōu)化永無止境,權(quán)衡好成本和收益,集中資源解決最優(yōu)先和重要的問題才是我們應(yīng)該做的。

文:海帶

線下活動(dòng)推薦:

時(shí)間:5月14日(周日)14:00-18:00

主題:得物技術(shù)沙龍第17期-穩(wěn)定生產(chǎn)專場

地點(diǎn):上海市楊浦區(qū)黃興路221號(hào)互聯(lián)寶地C2棟5樓 培訓(xùn)教室

活動(dòng)亮點(diǎn):你知道得物App穩(wěn)定性是怎么從99.91%提升到99.996%嗎?《得物技術(shù)沙龍-穩(wěn)定生產(chǎn)專題》將揭秘,不僅如此,我們還特別邀請(qǐng)了來自AWS(亞馬遜中國)、SkyWalking 社區(qū)、Greptime(格??萍迹┑戎髽I(yè)的技術(shù)專家,將和大家分享他們?cè)诒U舷到y(tǒng)穩(wěn)定性方面的經(jīng)驗(yàn)和心得。

點(diǎn)擊了解詳情:叮~查收你的穩(wěn)定生產(chǎn)得物技術(shù)沙龍邀請(qǐng)函

本文屬得物技術(shù)原創(chuàng),來源于:得物技術(shù)官網(wǎng)

未經(jīng)得物技術(shù)許可嚴(yán)禁轉(zhuǎn)載,否則依法追究法律責(zé)任!文章來源地址http://www.zghlxwxcb.cn/news/detail-448673.html

到了這里,關(guān)于得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

  • 4 深入理解搜索引擎索引與性能調(diào)優(yōu)

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 在互聯(lián)網(wǎng)中,信息檢索一直是一個(gè)重要的課題,其中搜索引擎就是最常用的。搜索引擎的作用不僅是從海量數(shù)據(jù)中快速獲取自己需要的信息,更是一種社會(huì)化交流工具,通過用戶自然語言的輸入,搜索引擎能夠自動(dòng)匹配到最相關(guān)的內(nèi)容并呈現(xiàn)給

    2024年02月08日
    瀏覽(25)
  • 最佳實(shí)踐分享:SQL性能調(diào)優(yōu)

    最佳實(shí)踐分享:SQL性能調(diào)優(yōu)

    SQL性能調(diào)優(yōu)是一個(gè)需要不斷探索和實(shí)踐的過程,旨在確保數(shù)據(jù)庫查詢的高效運(yùn)行。本文將分享一些SQL性能調(diào)優(yōu)的最佳實(shí)踐,幫助您提升數(shù)據(jù)庫性能,減少查詢響應(yīng)時(shí)間。 一、索引優(yōu)化 索引是提高查詢性能的關(guān)鍵。以下是一些關(guān)于索引優(yōu)化的建議: 1.為經(jīng)常用于查詢條件的列

    2024年01月16日
    瀏覽(73)
  • 萬字詳解PHP+Sphinx中文億級(jí)數(shù)據(jù)全文檢索實(shí)戰(zhàn)(實(shí)測億級(jí)數(shù)據(jù)0.1秒搜索耗時(shí))

    Sphinx查詢性能非常厲害,億級(jí)數(shù)據(jù)下輸入,大部分能在0.01~0.1秒,少部分再5秒之內(nèi)查出數(shù)據(jù)。 官方文檔:http://sphinxsearch.com/docs/sphinx3.html 極簡概括: 由C++編寫的高性能全文搜索引擎的開源組件,C/S架構(gòu),跨平臺(tái)(支持Linux、Windows、MacOS),支持分布式部署,并可直接適

    2024年04月08日
    瀏覽(41)
  • E往無前|騰訊云大數(shù)據(jù)ES索引原理剖析及寫入性能優(yōu)化最佳實(shí)踐

    E往無前|騰訊云大數(shù)據(jù)ES索引原理剖析及寫入性能優(yōu)化最佳實(shí)踐

    導(dǎo)讀 本文經(jīng)過大量案例總結(jié)和踩坑復(fù)盤,歸納整理了Elastisearch集群在寫入性能優(yōu)化方面一些常用的優(yōu)化技巧和避坑指南。 在我們服務(wù)騰訊云ES的客戶過程中,經(jīng)常會(huì)收到一些客戶對(duì)云上ES集群讀寫性能未能達(dá)到預(yù)期的反饋,并希望我們能夠配合做一些性能壓測及調(diào)優(yōu)的工作。

    2024年02月09日
    瀏覽(20)
  • 聊聊kafka client性能調(diào)優(yōu)及kafka最佳實(shí)踐

    聊聊kafka client性能調(diào)優(yōu)及kafka最佳實(shí)踐

    這里是 weihubeats ,覺得文章不錯(cuò)可以關(guān)注公眾號(hào) 小奏技術(shù) ,文章首發(fā)。拒絕營銷號(hào),拒絕標(biāo)題黨 最近在使用 kafka 的時(shí)候遇到了一些性能問題。 所以就打算研究下 kafka 相關(guān)的性能優(yōu)化方案。 client 主要分兩個(gè) producer consumer producer 主要是有兩個(gè)核心參數(shù) batch.size linger.ms batch.s

    2024年02月03日
    瀏覽(18)
  • ES搜索引擎入門+最佳實(shí)踐(九):項(xiàng)目實(shí)戰(zhàn)(二)--elasticsearch java api 進(jìn)行數(shù)據(jù)增刪改查

    ? ? ? ? 本篇是這個(gè)系列的最后一篇了,在這之前可以先看看前面的內(nèi)容: ES搜索引擎入門+最佳實(shí)踐(一)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(二)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(三)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(四)_flame.liu的博客

    2024年02月12日
    瀏覽(28)
  • 京東APP百億級(jí)商品與車關(guān)系數(shù)據(jù)檢索實(shí)踐

    本文主要講解了京東百億級(jí)商品車型適配數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)以及怎樣實(shí)現(xiàn)適配接口的高性能查詢。通過京東百億級(jí)數(shù)據(jù)緩存架構(gòu)設(shè)計(jì)實(shí)踐案例,簡單剖析了jimdb的位圖(bitmap)函數(shù)和lua腳本應(yīng)用在高性能場景。希望通過本文,讀者可以對(duì)緩存的內(nèi)部結(jié)構(gòu)知識(shí)有一定了解,并且能夠

    2024年02月03日
    瀏覽(29)
  • 阿里二面:千萬級(jí)、億級(jí)數(shù)據(jù),如何性能優(yōu)化? 教科書級(jí) 答案來了

    阿里二面:千萬級(jí)、億級(jí)數(shù)據(jù),如何性能優(yōu)化? 教科書級(jí) 答案來了

    在尼恩指導(dǎo)了幾百個(gè)小伙伴的面試,在這些過程中, 非常、非常高頻的一個(gè)面試題: 千萬級(jí)數(shù)據(jù),如何做性能優(yōu)化? 億級(jí)數(shù)據(jù),如何做性能優(yōu)化? 最近,有個(gè)小伙伴阿里二面,又遇到了這個(gè)問題。 其實(shí),尼恩一直想梳理一個(gè)教科書式的答案, 但是由于千萬級(jí)數(shù)據(jù)、億級(jí)數(shù)

    2024年02月02日
    瀏覽(22)
  • 案例實(shí)踐丨基于SkyWalking全鏈路監(jiān)控的微服務(wù)系統(tǒng)性能調(diào)優(yōu)實(shí)踐篇

    案例實(shí)踐丨基于SkyWalking全鏈路監(jiān)控的微服務(wù)系統(tǒng)性能調(diào)優(yōu)實(shí)踐篇

    1背景 隨著開源社區(qū)和云計(jì)算的快速推進(jìn),云原生微服務(wù)作為新型應(yīng)用系統(tǒng)的核心架構(gòu),得到了越來越廣泛的應(yīng)用。根據(jù)Gartner對(duì)微服務(wù)的定義:“微服務(wù)是范圍狹窄、封裝緊密、松散耦合、可獨(dú)立部署且可獨(dú)立伸縮的應(yīng)用程序組件?!?微服務(wù)之父,馬丁.福勒,對(duì)微服務(wù)概述

    2024年02月09日
    瀏覽(18)
  • 輕松存儲(chǔ)千億級(jí)數(shù)據(jù),知乎基于Doris的DMP系統(tǒng)架構(gòu)實(shí)踐

    輕松存儲(chǔ)千億級(jí)數(shù)據(jù),知乎基于Doris的DMP系統(tǒng)架構(gòu)實(shí)踐

    一、背景 ? 1、DMP 業(yè)務(wù) ? 知乎業(yè)務(wù)中存在哪些問題需要解決? ? 為什么要建立 DMP 平臺(tái)來解決這些問題? ? ? 2、DMP 業(yè)務(wù)流程 ? 當(dāng)前這些業(yè)務(wù)的運(yùn)營流程是怎樣的? ? DMP 如何與業(yè)務(wù)結(jié)合并賦能? ? ? 其中運(yùn)營模式包含如下 3 類: ? 1)站內(nèi)運(yùn)營自閉環(huán) ? 內(nèi)容運(yùn)營。拿內(nèi)容

    2023年04月27日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包