久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

elasticsearch路由一個(gè)文檔到一個(gè)分片的方法是什么

共計(jì) 1489 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

這篇文章主要講解了“elasticsearch 路由一個(gè)文檔到一個(gè)分片的方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“elasticsearch 路由一個(gè)文檔到一個(gè)分片的方法是什么”吧!

當(dāng)索引一個(gè)文檔的時(shí)候,文檔會(huì)被存儲(chǔ)到一個(gè)主分片中。 Elasticsearch 如何知道一個(gè)文檔應(yīng)該存放到哪個(gè)分片中呢?當(dāng)我們創(chuàng)建文檔時(shí),它如何決定這個(gè)文檔應(yīng)當(dāng)被存儲(chǔ)在分片  1  還是分片  2  中呢?

首先這肯定不會(huì)是隨機(jī)的,否則將來要獲取文檔的時(shí)候我們就不知道從何處尋找了。實(shí)際上,這個(gè)過程是根據(jù)下面這個(gè)公式?jīng)Q定的:

shard = hash(routing) % number_of_primary_shards

routing  是一個(gè)可變值,默認(rèn)是文檔的  _id ,也可以設(shè)置成一個(gè)自定義的值。 routing  通過 hash 函數(shù)生成一個(gè)數(shù)字,然后這個(gè)數(shù)字再除以  number_of_primary_shards (主分片的數(shù)量)后得到   余數(shù)  。這個(gè)分布在  0  到  number_of_primary_shards-1  之間的余數(shù),就是我們所尋求的文檔所在分片的位置。

所有的文檔 API( get 、 index 、 delete 、 bulk 、 update  以及  mget )都接受一個(gè)叫做  routing 的路由參數(shù)  ,通過這個(gè)參數(shù)我們可以自定義文檔到分片的映射。一個(gè)自定義的路由參數(shù)可以用來確保所有相關(guān)的文檔——例如所有屬于同一個(gè)用戶的文檔——都被存儲(chǔ)到同一個(gè)分片中。

一個(gè)分片并不是沒有代價(jià)的。記住:

一個(gè)分片的底層即為一個(gè) Lucene 索引,會(huì)消耗一定文件句柄、內(nèi)存、以及 CPU 運(yùn)轉(zhuǎn)。

每一個(gè)搜索請(qǐng)求都需要命中索引中的每一個(gè)分片,如果每一個(gè)分片都處于不同的節(jié)點(diǎn)還好,但如果多個(gè)分片都需要在同一個(gè)節(jié)點(diǎn)上競(jìng)爭(zhēng)使用相同的資源就有些糟糕了。

用于計(jì)算相關(guān)度的詞項(xiàng)統(tǒng)計(jì)信息是基于分片的。如果有許多分片,每一個(gè)都只有很少的數(shù)據(jù)會(huì)導(dǎo)致很低的相關(guān)度。

在特定場(chǎng)景下這是一個(gè)容易回答的問題,尤其是你自己的場(chǎng)景:

基于你準(zhǔn)備用于生產(chǎn)環(huán)境的硬件創(chuàng)建一個(gè)擁有單個(gè)節(jié)點(diǎn)的集群。

創(chuàng)建一個(gè)和你準(zhǔn)備用于生產(chǎn)環(huán)境相同配置和分析器的索引,但讓它只有一個(gè)主分片無副本分片。

索引實(shí)際的文檔(或者盡可能接近實(shí)際)。

運(yùn)行實(shí)際的查詢和聚合(或者盡可能接近實(shí)際)。

基本來說,你需要復(fù)制真實(shí)環(huán)境的使用方式并將它們?nèi)繅嚎s到單個(gè)分片上直到它“掛掉。”實(shí)際上   掛掉   的定義也取決于你:一些用戶需要所有響應(yīng)在 50 毫秒內(nèi)返回;另一些則樂于等上 5 秒鐘。

一旦你定義好了單個(gè)分片的容量,很容易就可以推算出整個(gè)索引的分片數(shù)。用你需要索引的數(shù)據(jù)總數(shù)加上一部分預(yù)期的增長(zhǎng),除以單個(gè)分片的容量,結(jié)果就是你需要的主分片個(gè)數(shù)。

在索引寫入時(shí),副本分片做著與主分片相同的工作。新文檔首先被索引進(jìn)主分片然后再同步到其它所有的副本分片。增加副本數(shù)并不會(huì)增加索引容量。

無論如何,副本分片可以服務(wù)于讀請(qǐng)求,如果你的索引也如常見的那樣是偏向查詢使用的,那你可以通過增加副本的數(shù)目來提升查詢性能,但也要為此 _增加額外的硬件資源_。

一個(gè)擁有兩個(gè)主分片一份副本的索引可以在四個(gè)節(jié)點(diǎn)中橫向擴(kuò)展

通過調(diào)整副本數(shù)來均衡節(jié)點(diǎn)負(fù)載

感謝各位的閱讀,以上就是“elasticsearch 路由一個(gè)文檔到一個(gè)分片的方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì) elasticsearch 路由一個(gè)文檔到一個(gè)分片的方法是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)1489字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 安阳市| 东平县| 长治市| 深泽县| 淄博市| 中方县| 连江县| 德令哈市| 长乐市| 镇原县| 聊城市| 通海县| 南康市| 鄯善县| 开化县| 柳州市| 吉隆县| 广水市| 澄江县| 桓仁| 沂源县| 江城| 肇东市| 河南省| 北海市| 三门峡市| 吉木萨尔县| 黎城县| 清河县| 阿克陶县| 磐石市| 齐齐哈尔市| 辽宁省| 基隆市| 阿克苏市| 平武县| 宣恩县| 曲麻莱县| 临湘市| 乌鲁木齐县| 南康市|