真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ES學(xué)習(xí)筆記之---從源碼啟動ES-創(chuàng)新互聯(lián)

開發(fā)中需要用到ES的插件, 開發(fā)ES插件需要了解ES的內(nèi)部結(jié)構(gòu), 于是再次開始學(xué)習(xí)ES的源碼。一方面了解插件開發(fā)的套路,一方面了解get接口的實現(xiàn)細(xì)節(jié)。

創(chuàng)新互聯(lián)建站是專業(yè)的阜城網(wǎng)站建設(shè)公司,阜城接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行阜城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

了解ES的原理,源碼是文檔最好的補充。源碼甚至比文檔更有助于了解ES的內(nèi)部核心。

首先從git上clone下源碼:

git clone https://github.com/elastic/elasticsearch.git

cd elasticsearch

git tag -l

git checkout v2.4.5

sh run.sh

如果使用run.sh沒有成功,再試一次, 有可能是maven的jar包沒有下載到。
這里使用v2.4.5是由于在編譯es的過程中會用到相關(guān)的jar包,而https://oss.sonatype.org/content/repositories/snapshots/org/elasticsearch/rest-api-spec/并不是所有版本的jar包都有, 所以從中選取了v2.4.5, 這跟手機(jī)選號一樣,純屬個人主觀。

這里JDK要換成1.8, 1.7的jdk maven會報protocol_verson錯誤。
編譯成功后,就會生成elasticsearch的zip包, 需要解壓,因為源碼中會用到conf文件。

cd /home/shgy/es_workspace/elasticsearch/distribution/zip/target/releases/
unzip elasticsearch-2.4.5-SNAPSHOT.zip 
mv elasticsearch-2.4.5-SNAPSHOT /opt/

編譯完成后, 將源碼import到intellij中, intellij的啟動參數(shù)

vm options : 

-Des.path.home=/opt/elasticsearch-2.4.5-SNAPSHOT

Program arguments: 

start

啟動成功后使用

curl http://localhost:9200

即可看到經(jīng)典的

{
  "name" : "Ruckus",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "ZIl7g86YRiGv8Dqz4DCoAQ",
  "version" : {
    "number" : "2.4.5",
    "build_hash" : "c849dd13904f53e63e88efc33b2ceeda0b6a1276",
    "build_timestamp" : "2018-08-12T01:30:55Z",
    "build_snapshot" : true,
    "lucene_version" : "5.5.4"
  },
  "tagline" : "You Know, for Search"
}

從源碼啟動成功后, 可以做的事情就多了。 比如看看You Know, for Search是怎么來的;看看ES內(nèi)部的index/get/search等接口內(nèi)部是如何運行的。
更重要的是, 可以將相關(guān)接口的邏輯套用, 依樣畫葫蘆開發(fā)plugin實現(xiàn)自己的業(yè)務(wù)邏輯。

以debug的方式啟動es后, 第一個斷點可以打在org.elasticsearch.http.netty.HttpRequestHandler.messageReceived(),這是netty的編程模式。

比如You Know, for Search, 通過debug, 可以了解到其調(diào)用鏈為:
HttpRequestHandler.messageReceived() --- RestMainAction.handleRequest()

Rest_xxx_Action是es所有http接口通用的套路。比如:

RestSearchAction    _search
RestGetAction    /{index}/{type}/{id}
RestIndexAction    /{index}/{type}/{id} 
......

可以說, Rest_xxx_Action是es的外殼, 整個ES的結(jié)構(gòu)大致如下圖所示:
ES學(xué)習(xí)筆記之---從源碼啟動ES

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文名稱:ES學(xué)習(xí)筆記之---從源碼啟動ES-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/dooejd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部