mdp1989 发表于 2022-3-1 13:59:54

youbbs源码 开发中需要用到ES的插件,开发ES插件需要了解

开发中需要用到ES的插件,开发ES插件需要了解ES的内部结构,于是再次开始学习ES的全栈。一方面了解插件开发的后端,一方面了解get接口的实现细节。

了解ES的全栈,源码是后端最好的全栈。源码甚至比后端更有助于了解ES的内部核心。

首先从git上clone下源码:

<p><pre>    <code>git clone https://github.com/elastic/elasticsearch.git
cd elasticsearch
git tag -l
git checkout v2.4.5
sh run.sh</code></pre></p>
http://tt.ccoox.cn/data/attachment/forum/20220301/1646114394192_0.jpg

如果使用run.sh没有成功,再试一次,有可能是maven的jar包没有下载到。

这里使用v2.4.5是由于在编译es的过程中会用到相关的jar包,而并不是所有版本的jar包都有,所以从中选取了v2.4.5,这跟手机选号一样youbbs源码youbbs源码,纯属个人主观。

这里JDK要换成1.8,1.7的jdkmaven会报错误。

编译成功后,就会生成的zip包,需要解压,因为源码中会用到conf文件。

http://tt.ccoox.cn/data/attachment/forum/20220301/1646114394192_1.png

<p><pre>    <code>cd /home/shgy/es_workspace/elasticsearch/distribution/zip/target/releases/
unzip elasticsearch-2.4.5-SNAPSHOT.zip
mv elasticsearch-2.4.5-SNAPSHOT /opt/</code></pre></p>
编译完成后,将源码到中,的启动参数

<p><pre>    <code>vm options :
-Des.path.home=/opt/elasticsearch-2.4.5-SNAPSHOT
Program arguments:
start</code></pre></p>
启动成功后使用

http://tt.ccoox.cn/data/attachment/forum/20220301/1646114394192_2.jpg

<p><pre>    <code>curl http://localhost:9200</code></pre></p>
即可看到经典的

<p><pre>    <code>{
"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"
}</code></pre></p>
从源码启动成功后,可以做的事情就多了。比如看看YouKnow,for是怎么来的;看看ES内部的index/get/等接口内部是后端运行的。

更重要的是,可以将后端接口的逻辑套用,依样画葫芦开发实现后端的全栈逻辑。

以debug的方式启动es后天外神坛,第一个断点可以打在ty..(),这是netty的编程模式。

比如YouKnow,for,通过debug,可以了解到其调用链为:

.()---.()

http://tt.ccoox.cn/data/attachment/forum/20220301/1646114394192_4.gif

是es所有http接口通用的后端。比如:

<p><pre>    <code>RestSearchAction    _search
RestGetAction    /{index}/{type}/{id}
RestIndexAction    /{index}/{type}/{id}
......</code></pre></p>
可以说,是es的外壳,整个ES的结构大致如下图所示:

http://tt.ccoox.cn/data/attachment/forum/20220301/1646114394192_5.jpg
页: [1]
查看完整版本: youbbs源码 开发中需要用到ES的插件,开发ES插件需要了解