IDEA启动Elasticsearch

背景

    旨在通过IDEA去跟踪Elasticsearch的每一步,方便更好的理解源代码,本文基于Elasticsearch的v2.3.4分支。


前提

    首先来简单看一下Elasticsearch服务的启动脚本,只保留我们需求的:

#!/bin/sh
 
daemonized=`echo $* | egrep -- '(^-d |-d$| -d |--daemonize$|--daemonize )'`
if [ -z "$daemonized" ] ; then
    exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
          org.elasticsearch.bootstrap.Elasticsearch start "$@"
else
    exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
          org.elasticsearch.bootstrap.Elasticsearch start "$@" <&- &
    retval=$?
    pid=$!
    [ $retval -eq 0 ] || exit $retval
    if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then
      sleep $ES_STARTUP_SLEEP_TIME
    fi
    if ! ps -p $pid > /dev/null ; then
      exit 1
    fi
    exit 0
fi
 
exit $?

里面有我们需要关注的变量"es.path.home":这个变量指定ES源码的路径,然后我们还看到启动类是"org.elasticsearch.bootstrap.Elasticsearch",参数是"start",了解完这些后,我们就可以配置一个项目来启动Elasticsearch了


配置

1.首先来看一下Elasticsearch的源码目录,core目录包含了Elasticsearch的源代码:

image.png

2.接着配置一个启动项目并启动即可即可:

image.png

3.在core文件下新建config文件夹,然后将Elasticsearch的两个配置文件放进去即可:elasticsearch.yml、logging.yml,这么放的缘故是Elasticsearch是这么去找到我们需要的两个配置文件的:

image.png

4.配置好了启动看效果:

image.png
image.png

总结

    通过debug能更好帮助我们理解Elasticsearch的源码,后续会有部分Elasticsearch源码的分析。

你可能感兴趣的:(IDEA启动Elasticsearch)