elasticsearch 启动过程源码(二)

elasticsearch 启动过程源码(二)

主要涉及nodebuilder,plugin初始化,node settings更新

es 版本1.0

上次我们讲到了Bootstrap中的initialSettings,初始化配置文件,并产生了environment,后边有什么关键地方呢?在Bootstrap中的main方法有如下代码

bootstrap.setup(true, tuple);

tuple是什么呢?是initialSettings方法的返回值,v1是settings,v2是environment。

private void setup(boolean addShutdownHook, Tuple<Settings, Environment> tuple) throws Exception {
        if (tuple.v1().getAsBoolean("bootstrap.mlockall", false)) {
            Natives.tryMlockall();
        }
        tuple = setupJmx(tuple);

        NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().settings(tuple.v1()).loadConfigSettings(false);
        node = nodeBuilder.build();
        if (addShutdownHook) {
            Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                    node.close();
                }
            });
        }
    }

先获取bootstrap.mlockal的配置,用来进行mlockall操作,实际上此参数用来缩影物理内存,防止进行swap,在进行es性能优化的时候需要经常将此选项设置为true来提高性能。Natives.tryMlockall()方法使用jna,来调用c语言的方法,不多说了,有兴趣可以自己了解下jna。setupJmx方法没有进行如何操作,下边是关键的 nodeBuilder。NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().settings(tuple.v1()).loadConfigSettings(false);调用nodeBuilder()方法new对象,后边是设置对象的一些属性。我们来看bulid()方法。

 public Node build() {
        return new InternalNode(settings.build(), loadConfigSettings);
    }

new了一个InternalNode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值