elasticsearch初始化之配置文件读取
来源:互联网 发布:域名和服务器的关系 编辑:程序博客网 时间:2024/05/17 22:11
public static Tuple<Settings, Environment> prepareSettings(Settings pSettings, boolean loadConfigSettings) { // ignore this prefixes when getting properties from es. and elasticsearch. String[] ignorePrefixes = new String[]{"es.default.", "elasticsearch.default."}; boolean useSystemProperties = !pSettings.getAsBoolean("config.ignore_system_properties", false); // just create enough settings to build the environment ImmutableSettings.Builder settingsBuilder = settingsBuilder().put(pSettings); if (useSystemProperties) { settingsBuilder.putProperties("elasticsearch.default.", System.getProperties()) .putProperties("es.default.", System.getProperties()) .putProperties("elasticsearch.", System.getProperties(), ignorePrefixes) .putProperties("es.", System.getProperties(), ignorePrefixes); } settingsBuilder.replacePropertyPlaceholders(); Environment environment = new Environment(settingsBuilder.build()); if (loadConfigSettings) { boolean loadFromEnv = true; if (useSystemProperties) { // if its default, then load it, but also load form env if (Strings.hasText(System.getProperty("es.default.config"))) { loadFromEnv = true; settingsBuilder.loadFromUrl(environment.resolveConfig(System.getProperty("es.default.config"))); } // if explicit, just load it and don't load from env if (Strings.hasText(System.getProperty("es.config"))) { loadFromEnv = false; settingsBuilder.loadFromUrl(environment.resolveConfig(System.getProperty("es.config"))); } if (Strings.hasText(System.getProperty("elasticsearch.config"))) { loadFromEnv = false; settingsBuilder.loadFromUrl(environment.resolveConfig(System.getProperty("elasticsearch.config"))); } } if (loadFromEnv) { try { settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.yml")); } catch (FailedToResolveConfigException e) { // ignore } catch (NoClassDefFoundError e) { // ignore, no yaml } try { settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.json")); } catch (FailedToResolveConfigException e) { // ignore } try { settingsBuilder.loadFromUrl(environment.resolveConfig("elasticsearch.properties")); } catch (FailedToResolveConfigException e) { // ignore } } } settingsBuilder.put(pSettings); if (useSystemProperties) { settingsBuilder.putProperties("elasticsearch.", System.getProperties(), ignorePrefixes) .putProperties("es.", System.getProperties(), ignorePrefixes); } settingsBuilder.replacePropertyPlaceholders(); // allow to force set properties based on configuration of the settings provided for (Map.Entry<String, String> entry : pSettings.getAsMap().entrySet()) { String setting = entry.getKey(); if (setting.startsWith("force.")) { settingsBuilder.remove(setting); settingsBuilder.put(setting.substring(".force".length()), entry.getValue()); } } settingsBuilder.replacePropertyPlaceholders(); // generate the name if (settingsBuilder.get("name") == null) { String name = System.getProperty("name"); if (name == null || name.isEmpty()) { name = settingsBuilder.get("node.name"); if (name == null || name.isEmpty()) { name = Names.randomNodeName(environment.resolveConfig("names.txt")); } } if (name != null) { settingsBuilder.put("name", name); } } // put the cluster name if (settingsBuilder.get(ClusterName.SETTING) == null) { settingsBuilder.put(ClusterName.SETTING, ClusterName.DEFAULT.value()); } Settings v1 = settingsBuilder.build(); environment = new Environment(v1); // put back the env settings settingsBuilder = settingsBuilder().put(v1); // we put back the path.logs so we can use it in the logging configuration file settingsBuilder.put("path.logs", cleanPath(environment.logsFile().getAbsolutePath())); v1 = settingsBuilder.build(); return new Tuple<>(v1, environment); }
elasticsearch初始化时将elasticsearch.yml文件读入并解析,获取初始化配置信息。将配置后的信息保存在 Tuple<Settings, Environment> tuple结构中。
0 0
- elasticsearch初始化之配置文件读取
- 原理分析之三:初始化(配置文件读取和解析)
- 原理分析之三:初始化(配置文件读取和解析)
- 原理分析之三:初始化(配置文件读取和解析)
- 原理分析之三:初始化(配置文件读取和解析)
- 原理分析之三:初始化(配置文件读取和解析)
- 原理分析之三:初始化(配置文件读取和解析)
- 工作学习之spring:spring初始化读取xml配置文件
- 原理分析之三:初始化(配置文件读取和解析)
- MySQL 初始化读取配置文件摘要
- Python之读取配置文件
- webwork初始化时读取多个配置文件
- spring读取配置文件初始化容器操作总结
- spring读取配置文件初始化容器操作总结
- spring读取配置文件初始化容器操作总结
- spring读取配置文件初始化容器操作总结
- spring读取配置文件初始化容器操作
- spring读取配置文件初始化容器操作
- Jquery异步加载加载与滚动加载数据示例
- Android编译详解之lunch命令
- 【Linux】Linux中git的常用命令
- 泛型
- vmware虚拟机安装ghost版xp-黑屏错误及解决方法
- elasticsearch初始化之配置文件读取
- Memcached(一)Memcached特点和简单安装
- 【Android开发基础】应用界面主题Theme使用方法
- MSMQ?不,太弱了。使用ActiveMQ实现消息队列服务
- DOM对象触发事件的一些解
- AndroidFramework之Volley详细解析 定制Request (三)
- 胡笳十八拍
- pointer on C programming exercise P6.18 Q3
- uva1509(回溯)