自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

劉備三顧茅廬,請Elasticsearch出山

開發(fā) 架構(gòu) 服務器
話說吧,有這么三個人,劉備、關羽和張飛,劉備是老大,關羽是二哥,張飛是老三,三兄弟每天玩在一起,打魔獸玩星際,一起吃雞,整天無所事事。

 之前分享的一篇《赤壁之戰(zhàn),曹操大敗只因缺了Service Mesh》受到不少好評,今天我們繼續(xù)通過“三國”學技術,講的是 Elasticsearch 的前世今生。

[[273159]] 

話說吧,有這么三個人,劉備、關羽和張飛,劉備是老大,關羽是二哥,張飛是老三,三兄弟每天玩在一起,打魔獸玩星際,一起吃雞,整天無所事事。

于是在一個白天不見月亮的早上,三人從網(wǎng)吧出來,劉備就說,咱們這樣下去也不是事啊,這互聯(lián)網(wǎng)是個機會,要不咱們做電商吧!

三人一商量,說干就干,于是乎,他們?nèi)撕匣镌谔覉@注冊成立了一家公司,起名叫徐州草鞋,主要是通過網(wǎng)絡做天然有機草鞋生意(其實啊,劉備一堆草鞋賣不出去,也只能做這個業(yè)務,汗)。

劉備是總經(jīng)理,負責商務,負責開拓客戶市場。既然是搞電子商務,還得開發(fā)一個電子商務網(wǎng)站,于是關羽自告奮勇說他負責后端技術,張飛繡過花,會畫畫,說他可以負責前端。

好戲剛剛開始......

需求的誕生

劉備一大早就來到了公司,一看張飛和關羽已經(jīng)在公司了,就問道:“兩位賢弟,今天來的還蠻早啊。”

張飛一聽就炸毛了,“大哥,你讓我和二哥去做什么搜索功能,我們已經(jīng)一晚沒睡了,昨天就沒回去好嘛。”

關羽也來氣,“大哥,是啊,我們剛剛才上線電商網(wǎng)站,你這邊又要加什么需求,現(xiàn)在用數(shù)據(jù)庫檢索不是好好的么,能不能讓我們歇口氣。”

“兩位兄弟辛苦了,我也不想啊,最近咱們一單生意都沒有啊。昨天我和一位朋友聊,他說我們的網(wǎng)站很不好用,找不到他想要的鞋,結(jié)果只好去別的地方買了。不過他給我推薦了一位黑客高手,叫諸葛亮的家伙,說是啥都懂,我們今天找他取經(jīng)去。”

三顧茅廬

三人一行來找諸葛亮,不過前面兩次都碰了壁。據(jù)諸葛亮書童說,諸葛亮不在家,到了第三次,還是不在家。

張飛仔細一聽,明明是有人在家啊,而且玩游戲喊的聲音還這么大,張飛怒了,搭梯子把諸葛亮家的保險給拔了。

諸葛亮正郁悶呢,咋停電了呢?算了,今天沒得玩了,于是讓書童請他們進來。

“在下諸葛名亮,字孔明,不知三位...”,三人一說,是這么這么回事。

諸葛亮一聽,“哦,原來是這么這么回事啊,你們的網(wǎng)站我剛看了,你們家的草鞋品種確實不 Nan 少 Kan。如今客戶上網(wǎng)站找東西,都是先用網(wǎng)站的搜索來搜一下,但是你們網(wǎng)站的搜索功能實在是太 La 弱 Ji,明擺在那里的商品我都搜不出來,實在是大問題啊。”

“這樣啊,我看你們仨都是好人,給你們推薦一個好東西,叫做 Elasticsearch,這個肯定可以幫助你們。”

“翼德,把先生放下來吧。”

“是,大哥。二哥,你把刀也放下吧。”

關羽一聽,好像在哪里聽說過 Elasticsearch,“大哥,這個東西好像有點耳熟啊,哦,諸葛亮先生這一說,我倒是記起來了,隔壁公司的呂布最近神神秘秘的,好像就是在用這個,難怪他們最近公司業(yè)務好的很”。

Elasticsearch 的故事

諸葛亮清了清嗓子,又從抽屜里摸出一把扇子,“還是讓我來給你們講講吧”。

“Elasticsearch 以前叫 Elastic Search。顧名思義,就是“彈性的搜索”。

很明顯,它一開始是圍繞著搜索功能,打造了一個分布式搜索引擎,底層是基于開源的搜索引擎庫 Lucene,是由 Java 語言編寫的,項目大概是 2010 年 2 月份在 Github 正式落戶的。

咳咳,有必要首先給你介紹一下 Lucene。Lucene 是一個非常古老的搜索引擎工具包,也是用 Java 編寫,主要用來構(gòu)建倒排索引(一種數(shù)據(jù)結(jié)構(gòu))和對這些索引進行檢索,從而實現(xiàn)全文檢索功能。

Lucene 很強大,使用起來也非常靈活,缺點是它僅僅是一個基礎類庫,也沒有考慮到高并發(fā)和分布式的場景。

如果你想在自己的程序里面使用 Lucene,還是需要做很多工作,并且涉及很多搜索原理和索引數(shù)據(jù)結(jié)構(gòu)的知識,這就給我們帶來了不少挑戰(zhàn)。所以,Lucene 的上手時間一般都比較長。”

關羽插了一句,“Lucene 我知道,確實賊難用,使用起來一堆問題啊,我之前試過來著。” 關羽說完,臉又紅了。

諸葛亮接著說:“時間一晃來到 2004 年,有一個以色列小伙子,名字叫謝伊·班農(nóng)( Shay Banon),他成親不久來到倫敦,因為當時他的夫人正好在倫敦學廚師。

初來乍到,也沒有找到工作,于是班農(nóng)就打算寫一個叫作 iCook 的小程序來管理和搜索菜譜,一來練練手,方便找工作;二來這個小工具還可以給其夫人用。

班農(nóng)在編寫 iCook 的過程中,使用了 Lucene,感受到了直接使用 Lucene 開發(fā)程序的各種暴擊和痛苦。

于是他在 Lucene 之上,封裝了一個叫作 Compass 的程序框架,與 Hibernate 和 JPA 等 ORM 框架進行集成,通過操作對象的方式來自動地調(diào)用 Lucene 以構(gòu)建索引。

這樣做的好處是,可以很方便地實現(xiàn)對‘領域?qū)ο?rsquo;進行索引的創(chuàng)建,并實現(xiàn)‘字段級別’的檢索,以及實現(xiàn)‘全文搜索’功能。

可以說,Compass 大大簡化了給 Java 程序添加搜索功能的開發(fā)。Compass 開源出來,變得很流行。

在 Compass 編寫到 2.x 版本的時候,社區(qū)里面出現(xiàn)了更多需求,比如需要有處理更多數(shù)據(jù)的能力以及分布式的設計。

班農(nóng)發(fā)現(xiàn)只有重寫 Compass ,才能更好地實現(xiàn)這些分布式搜索的需求,于是 Compass 3.0 就沒有了,取而代之的是一個全新的項目,也就是 Elasticsearch。”

讓人砰然心動的 Elasticsearch

看到劉備三人聽的入迷,諸葛亮輕揮羽扇,繼續(xù)說了下去。

“得益于 Compass 項目的積累,Elasticsearch 問世之初就考慮到了功能的易用性。

Elasticsearch 作為一個獨立的搜索服務器,提供了非常方便的搜索功能。用戶完全不用關心底層 Lucene 的細節(jié),只需要通過標準的 HTTP+RESTful 風格的 API,就可以進行索引數(shù)據(jù)的增刪改查。數(shù)據(jù)的輸入輸出采用 JSON 格式,以文檔和面向?qū)ο蟮姆绞?,這樣就能非常方便地理解和表達領域數(shù)據(jù)。”

張飛一拍桌子,“Elasticsearch 簡直就是一個 Compass 的 RESTful 實現(xiàn)啊!”

“沒錯。同時,Elasticsearch 基于分片和副本的方式實現(xiàn)了一個分布式的 Lucene Directory,再結(jié)合 Map-reduce 的理念,實現(xiàn)了一個簡單的搜索請求分發(fā)合并的策略,能輕松化解海量索引和分布式高可用的問題。

可以說,僅僅依靠這兩點,Elasticsearch 就已經(jīng)秒殺了當時市面上所有的搜索引擎服務或是程序庫,我當時看到 Elasticsearch 也眼前一亮。

如今,Elasticsearch 基本上已經(jīng)是搜索引擎市場排名第一的產(chǎn)品了,從 DB-Engines 網(wǎng)站的排名可以看到,Elasitcsearch 基本上是一騎絕紅塵,拉開第二名遠遠一大截。”

 

統(tǒng)計數(shù)據(jù)來源:https://db-engines.com/en/ranking/search+engine

ELK 橫空出世

諸葛亮口水狂飆,顯得很興奮,“如果只是 Elasticsearch 單獨使用,那我們的故事也就結(jié)束了,事實上好戲這才剛剛開始。俗話說,一個好漢三個幫,開源社區(qū)亦是如此。”

“這一個好漢三個幫,說的不就是咱仨嘛。” 劉備接過話茬。

“別打岔,”諸葛亮繼續(xù)說,“這里我要說的是 ‘ELK’ 的出現(xiàn),不過首先我要給你們講講 Logstash。”

“Logstash 是一個開源的日志處理工具,用 JRuby 寫的,主要特點是基于靈活的 Pipeline 管道架構(gòu)來處理數(shù)據(jù)。

什么意思呢?可以理解為將數(shù)據(jù)放進一個管道內(nèi)進行處理,并且就跟真正的自來水管一樣,管道由一截一截管子組成,每一個小管代表著一個數(shù)據(jù)處理的流程,每一個流程只做一件事情,然后可以根據(jù)數(shù)據(jù)的處理需要,選擇多個不同類型的管子靈活組裝。

Logstash 社區(qū)非?;钴S,支持多種輸入數(shù)據(jù)源和多種輸出數(shù)據(jù)源。一開始, Elasticsearch 只是作為其中一個輸出的存儲,主要用于日志數(shù)據(jù)的存儲。

不過,隨著大家把日志發(fā)送到 Elasticsearch 之后,大家發(fā)現(xiàn)這家伙用起來很方便嘛,不僅能夠存儲大量的數(shù)據(jù),水平伸縮還很方便。更關鍵的是,你能夠很方便地把數(shù)據(jù)找出來,也就是進行全文搜索。

全文搜索在日志分析里面是非?;A的一個功能,通過一個關鍵字就能定位具體的詳細日志,相比存放到關系型數(shù)據(jù)庫和普通的文件存儲,Elasticsearch 優(yōu)勢非常明顯。于是 Logstash 搭配 Elasticsearch 變得很受歡迎。

Kibana 的故事

不過 Logstash 自帶的 UI 查詢?nèi)罩镜慕缑嬗悬c簡陋,于是有一個叫作 Rashid Khan 的運維工程師表示完全忍不了了,用 PHP 寫了一個叫作 Kibana 的程序,一個更好看和更好用的前端界面。

PHP 寫完一版,他又用 Ruby 寫一版,后面又用 AngularJS 寫了一版,不僅有日志的搜索和查看,還加上了一些統(tǒng)計展示功能。

Kibana 的名字其實是倆個水果的名字的組合(Kiwi+Banana)。

張飛聽到這里:“工作不飽和啊這家伙”。孔明瞪了他一眼,繼續(xù)說道。

“這個時候,Elasticsearch 已經(jīng)有 Facet 概念,也就是分面統(tǒng)計( 注:1.0 之后推出了 Aggregation 來代替 Facet),可以對數(shù)據(jù)里面的某個字段進行單個維度的統(tǒng)計,支持多種統(tǒng)計類型。

比如,Term Facet 可以計算字段里面某些值出現(xiàn)了多少次;Histogram Facet 還可以按時間區(qū)間進行匯總統(tǒng)計等。

這些統(tǒng)計功能在前端 UI 就可以被利用起來,展示一些餅圖、時間曲線等等,在運維的分析里面自然也都是需要的。

慢慢的 Kibana 越做越復雜,支持的功能越來越多,Kibana 3 變得流行起來。

于是乎,ELK 橫空出世(Elasticsearch、Logstash 和 Kibana 這三個產(chǎn)品的首字母縮寫),風靡了整個運維界。

故事講到這里,相信你們對于 Elasticsearch 就有了一個大概的認識,可以用它做搜索,也可以用它做日志。”

張飛點點頭,“還是相當?shù)膹姾仿铩?rdquo;

Elastic Stack 平臺的魅力

“不過,這還沒完。”諸葛亮吞了吞口水,繼續(xù)說。

“Elastic 后面又引入了 Beats 家族。這是一系列非常輕量級的數(shù)據(jù)收集端,我給你介紹幾個比較典型的,比如:

  • Packetbeat 可以實時監(jiān)聽網(wǎng)卡流量,并實時解析網(wǎng)絡協(xié)議數(shù)據(jù),可用來做 NPM 網(wǎng)絡數(shù)據(jù)分析。
  • Metricbeat 可以用來收集服務器,以及服務器上部署的應用服務的各項監(jiān)控指標數(shù)據(jù),這樣就可以替代 Zabbix 等傳統(tǒng)的監(jiān)控軟件,來做服務器的性能指標分析。
  • Auditbeat 可以實時收集服務器的行為事件,用于安全方面的入侵檢測和安全日志審計分析。
  • Winlogbeat 用于 Windows 平臺的事件日志收集。
  • Filebeat 用于日志文件的收集等。

Elasticsearch、Logstash、Kibana、Beats ,這幾個放在一起,就叫作 Elastic Stack。

如今,Elastic 的版圖越來越大,前年,Elastic 收購 Opbeat,開源了業(yè)界第一個完整的 APM 解決方案,通過探針可以實現(xiàn)無侵入的代碼級別的應用性能監(jiān)控。

去年 7 月又收購了代碼搜索 Insight.IO,后續(xù)可以實現(xiàn)代碼級別的語義檢索。今年又收購了一個做終端安全的廠商 Endgame。

這樣 Elastic Stack 這一個平臺就可以同時做到:

  • 日志分析
  • 性能指標分析
  • 安全日志分析
  • APM 應用性能分析
  • NPM 網(wǎng)絡性能分析
  • 網(wǎng)站站內(nèi)搜索
  • 企業(yè)級搜索
  • 代碼搜索
  • 實時 BI 業(yè)務分析
  • SIEM 解決方案
  • 終端設備安全
  • ......

試想一下:在一個風和日麗的下午,你手機上收到一條告警短信,于是點擊鏈接,打開 Kibana 的監(jiān)控儀表盤,發(fā)現(xiàn)某臺服務器的 CPU 達到 100% 了。

于是,你順手點擊過濾這臺服務器的所有相關信息,可以看到相關的日志顯示,是這臺服務器上面部署的某一個業(yè)務服務的 QPS 有顯著下降,然后過濾到這個業(yè)務的日志,發(fā)現(xiàn)有很多異常的日志信息,前端 Nginx 代理日志還顯示有很多請求被拒絕,看樣子是后端的微服務處理能力達到瓶頸。

這個時候,繼續(xù)點擊 APM 的分析面板,切換到事務和會話分析界面,看到有很多數(shù)據(jù)庫鏈接處于開啟狀態(tài)。

你點擊查看調(diào)用代碼,立馬就找到了性能瓶頸的原因,原來是某個類的某個方法調(diào)用 MySQL 卻沒有及時釋放鏈接造成了泄露,于是修改這行代碼,提交上線,問題解決。然后,你可以若無其事地繼續(xù)瀏覽相親網(wǎng)站啦。

盡管這是一個假想的例子,但是可以看到,基于 Elastic Stack ,你可以覆蓋一整套完整的,從全局性能監(jiān)控到具體代碼級別的排障和解決問題的過程,并且使用起來要比很多現(xiàn)有的方案更加高效和便捷。

好了,現(xiàn)在你們是否對 Elasticsearch 已經(jīng)有了一個初步的了解呢?是不是也有躍躍欲試的打算?”

劉備點點頭:“今天來先生這里真的是收獲不少,之前多有冒犯,還請多多包涵啊。”

關羽也說:“大哥,明天我就和三弟開始研究 Elasticsearch,爭取早日改造好咱們的網(wǎng)站。”

“剛說的相親網(wǎng)站要不也發(fā)我一下”,張飛連忙問道。劉備沒好氣白了一眼張飛。

“天色已晚,告辭了!”

劉備三人作別孔明,各自高興的回家了。

“慢走不送,有空來喝茶啊。”

孔明抹了一把額頭,總算送走這仨了,恐怕從此江湖上估計要不平靜嘍。

Elasticsearch 的基本概念

[[273160]] 

張飛帶著筆記本來到會議室(今天的位置是關羽家),因為關羽今天要給大家講講 Elasticsearch 的調(diào)研成果。

關羽部門的其他成員也都來了,其實也就關平和周倉(隔壁村硬拽的)兩個人。

沒辦法,創(chuàng)業(yè)初期,徐州草鞋網(wǎng)一共就這么幾條槍,這不劉總經(jīng)理今天去城門口擺攤搞線下直銷業(yè)務去了,因為線上網(wǎng)站不是還在開發(fā)中嘛。

關羽把投影儀擺弄好,就開場了:“兄弟們,大哥、翼德和我前些日子見過茅廬的諸葛先生,諸葛先生給我們介紹了非常不錯的工具,叫做 Elasticsearch(簡稱:ES),可以用來改進我們的網(wǎng)站搜索,非常有前途,今天我給大家介紹一下。”

張飛點點頭:“二哥,你能不能給我們講講 Elasticsearch 和咱們用的的數(shù)據(jù)庫有什么區(qū)別啊?”

“三弟,你不按套路出牌啊,我還沒開始講,你就問問題,我這不都準備了 PPT 么?”

“二哥,別整這些花里胡哨的,大哥今天又不在,我昨晚和兄弟們喝酒喝大了,頭痛的要命,簡單點,能不能簡單點。”

“丫給老子出去。”關羽氣的臉紅脖子粗,張飛一聽就老實了,“是是是,我不說話行了吧。”

ES 與數(shù)據(jù)庫比較

“要說 Elasticsearch 和咱們現(xiàn)有數(shù)據(jù)庫的區(qū)別,先從我們的數(shù)據(jù)庫說起吧。”

“我們的數(shù)據(jù)庫主要用來存儲草鞋網(wǎng)的業(yè)務數(shù)據(jù),如訂單、商品介紹、會員等信息,數(shù)據(jù)庫是由表組成的結(jié)構(gòu),一張表里面存放若干條記錄,一張表有若干個列,每列就是一個字段。

他們之間有各種關系,所以傳統(tǒng)的這類數(shù)據(jù)庫也叫關系型數(shù)據(jù)庫, 因為我們可以進行多張表的聯(lián)合查詢。關平你上次寫的幾百行的 SQL 還記得嗎,很溜啊,你這是在用 SQL 寫散文啊。”

“就是速度稍微有點慢,呵呵。”關平撓了撓頭,不好意思地說。

“呵,好笑,那是相當慢好嗎。咱們先來看看這個 Elasticsearch 是干嘛的。它是一個專門的搜索引擎,大家平常用的曹阿蠻公司家的漢搜,就是搜索引擎的技術,底層技術原理都是一樣的。

大家用的數(shù)據(jù)庫里面不是可以對字段創(chuàng)建索引嘛,這樣查起來才快,而 Elasticsearch 則是專門存索引的,索引就是為了優(yōu)化查詢而生的,有了索引,查詢起來自然就快啦。

在 Elasticsearch 中也有和庫表類似的概念,不過叫作索引(Index),索引里面的每一條記錄叫做一個文檔,每個文檔里面有多個字段,和數(shù)據(jù)庫相比,Elasticsearch 不支持索引間的任意關聯(lián)查詢(Join),也不支持數(shù)據(jù)庫的事務操作,無法滿足對數(shù)據(jù)有強一致性要求的場景。”

周倉舉手道:“少爺,看樣子,Elasticsearch 和數(shù)據(jù)庫不是一個東西哈,但是這些事務一致性可都是基本要求啊,Elasticsearch 居然不支持。”

“沒錯,咱們引入 Elasticsearch 本來就不是要替換掉咱們目前的數(shù)據(jù)庫,我們只需要借助它提升我們的搜索查詢性能就可以了。Elasticsearch 是一個Java 程序,運行在 JVM 虛擬機之上,可以說是跨平臺的。”

RESTful+HTTP+JSON

“Java 的啊,咱們沒人會 Java 啊!”張飛又叫起來,“又要學一門新語言啊,坑人不?”

“急什么啊。”關羽繼續(xù)說,“雖然 Elasticsearch 是 Java 寫的,但是它對外提供的是 RESTful API,所以,也就是我們都熟悉的 HTTP 協(xié)議,通過使用標準的 HTTP 接口來訪問 Elasticsearch,不用 Java 語言也能用的??梢哉f是跨語言的。”

“媽呀,嚇俺一跳,我們前端界的新東西我都忙不過來了,什么 React、Angular、Vue 已經(jīng)把我累得夠嗆,可別再讓我學什么 Java 了。”張飛這下總算是松了一口氣。

“另外,Elasticsearch 各種語言的 SDK 也有提供,根本不用擔心語言調(diào)用的問題,就算是自己封裝一個 API 調(diào)用,也就是拼接出一個 HTTP 請求就可以了。

Elasticsearch 的輸入輸出都是 JSON 數(shù)據(jù)結(jié)構(gòu),這是一種 JavaScript 里面常用的數(shù)據(jù)結(jié)構(gòu),翼德應該非常熟悉了。”

“JSON 當然熟練了,今天晚上誰請我喝酒,我就教他” 張飛一臉得意。

“額,地球人都知道,還要你教,讓我給你們看看一個在 Elasticsearch 里面創(chuàng)建索引的例子啊。”

只見關羽快速的切換了一張早已準備好的幻燈片:

  1. POST index/doc/1 
  2.  "name":"關羽"
  3.  "age":32, 
  4.  "address":"徐州大道201號"
  5.  "date":"2018-11-11" 

張飛一看興奮了:“恩,JSON 這個好,簡潔易懂,也支持復雜的結(jié)構(gòu)表達,一個對象包含若干屬性,屬性又可以是另外一個 JSON 對象,用來描述業(yè)務對象真的是非常方便。這個例子的雙十一也比較符合二哥的身份。”

分布式、可伸縮

“找抽是吧,你還不是一樣”,講完了 ES 和數(shù)據(jù)庫的區(qū)別,打消了語言調(diào)用的疑慮,關羽接著說了下去。

“咱們業(yè)務剛起步,沒有多少數(shù)據(jù)量,可是咱大哥的目標是把咱徐州草鞋做到全國。

你想想咱們?nèi)珖卸嗌匐p腳,要是每個人腳上都是穿咱的草鞋,那業(yè)務量有多大啊,那訂單,那客戶資料還不海了去啊,所以咱們要考慮后續(xù)的擴容升級的問題。這時從門口進來一位打掃衛(wèi)生的大娘,“來來來,抬腳,讓一讓”。

被突如其來的干擾影響,關羽臉色有點不悅,無奈,打掃衛(wèi)生的大娘就是他老娘。

“Elasticsearch 支持集群部署,Elasticsearch 的每一個進程叫做一個節(jié)點(Node),如果再啟動另外一個節(jié)點,它們相互之間能夠自動組成一個集群。”

“牛群倒是聽說過,什么雞群鴨群的。”大娘一臉疑惑。“小關,今天叫兄弟們在家里吃了晚飯再走啊”。

“這位大娘,你掃完就撤好吧,真是的,啥也不懂。",“兔崽子,回頭收拾你”。

關羽繼續(xù)給大家講道"集群啊,就是讓服務器在一起協(xié)作完成一件任務,也就是說,它們可以共享服務器資源,相互之間進行通信。

在 Elasticsearch 的集群里,咱們通過訪問任意節(jié)點的 RESTful API 端口,就可以訪問到整個集群里面的所有索引信息,而不用去關心數(shù)據(jù)的具體分布,另外數(shù)據(jù)也有副本,能夠自動分布和進行故障處理,就算其中一個機器節(jié)點掛了,另外的節(jié)點也還能繼續(xù)對外提供服務,同時也能保證數(shù)據(jù)也是完整的不受故障影響,不丟數(shù)據(jù),你們說是不是很神奇啊?”

“嗯,高級、高級!”幾個人異口同聲。

“Elasticsearch 里面的索引是以分片的方式來組織的,一個索引底層會有多個分片,以分片為單位分布在集群中。

這樣的分布方式,跟數(shù)據(jù)庫的 Sharding 有一拼,同樣的原理,目的是避免單個索引太大,拆分成若干分片就可以解決單個大索引的問題。

未來如果我們要支持搜索業(yè)務的增長,我們只需要增加 Elasticsearch 的節(jié)點,就能夠給集群添加資源,Elasticsearch 還會自動遷移舊機器的部分數(shù)據(jù)到新節(jié)點上,從而充分利用硬件資源,擴充處理能力。我聽說西域有人部署過成百上千個節(jié)點的規(guī)模呢,這么大規(guī)模,好家伙。”

QueryDSL、查詢與聚合分析

“二哥,你快說說,Elasticsearch 到底怎么用,剛剛聽你說了這么多,感覺牛逼轟轟的,像我一搞前端打雜的,能不能很快也用起來?”張飛有點著急地說。

“三弟,你是前端大將軍,不是前端打雜好嘛,Elasticsearch 對外提供的是 RESTful API,你用它的時候,不用關心底層的諸多細節(jié)。

你要創(chuàng)建索引,你就往里面 POST 一條 JSON 數(shù)據(jù),你要查詢,你就寫一個查詢的 GET 請求就行了。

在 Elasticsearch 里面,有一個專門的查詢表達式叫做 QueryDSL,也是用 JSON 描述的,支持很多的查詢類型。

此外,我們還能對數(shù)據(jù)進行統(tǒng)計分析,比如可以對咱們網(wǎng)站的訪問者統(tǒng)計分析他們的訪問時段、所在州郡、以及點擊過哪些頁面,這些在 Elasticsearch 通過一個叫作“聚合”的功能就能實現(xiàn)。

不管是查詢還是聚合,Elasticsearch 給你返回的結(jié)果也是 JSON 格式的文檔,拿到返回結(jié)果之后,咱們就可以在前端進行展示了。這塊兒主要是三弟你的工作了。”

“如此甚好,這個小 Case ,交給俺了,前端對于俺那還不是分分鐘的事情。”張飛拍著胸脯說。

插件與擴展

“Elasticsearch 功能還比較多,周倉、關平,你們倆要好好研究一下,我們的一些需求不一定都能滿足,不過 Elasticsearch 有非常好的插件機制,它自己就提供了很多功能,就是以插件形式放出來的。

從前面的 API 查詢到底層的網(wǎng)絡通信都可以通過寫插件來進行擴展,有些需求 Elasticsearch 沒有提供的,我們也可以通過自己寫插件來實現(xiàn),不過插件需要用 Java 來編寫。另外就是 Elasticsearch 的部署安裝你們倆研究一下。”

“遵命,關將軍!”周倉和關平一起點頭。

“二哥,我好像有點餓了,你們家有啥吃的不。”

“拳頭吃不吃?”

“來倆唄。”

“哎呀,不敢了。”......

劉備在城門口賣完今天的第五雙草鞋,抬頭看到徐州今天上空的月亮感覺特別圓,心想明天肯定又是晴朗的一天。

欲知后事,且聽下回分解。

 

 

責任編輯:武曉燕 來源: 以無限為有限
相關推薦

2011-09-14 16:53:33

2013-04-09 15:36:19

交換機交換機端口設備端口模式

2021-11-04 09:49:55

智能自動駕駛汽車

2012-09-19 14:33:51

創(chuàng)業(yè)程序員創(chuàng)業(yè)成功

2015-06-10 09:34:54

IT新人提前了解經(jīng)驗

2012-02-06 10:38:00

Hadoop

2014-11-24 13:10:49

Tizen三星操作系統(tǒng)

2017-01-06 12:08:59

AlphaGoMasterDeepMind

2014-11-26 17:24:01

AWSIaaSPaaS

2009-03-01 22:27:21

2022-03-22 10:24:48

Linux開源Elasticsea

2009-02-18 09:21:39

聯(lián)想柳傳志PC廠商

2021-06-04 07:31:58

數(shù)據(jù)庫MySQLHBase

2019-06-11 18:35:18

戴爾

2018-03-28 09:02:50

智慧金融

2012-09-04 15:56:43

2009-04-09 08:38:20

柳傳志復出楊元慶

2023-02-13 11:28:45

AMDZen2處理器

2015-06-24 09:42:30

點贊
收藏

51CTO技術棧公眾號