ESR的插件简单说明

插件类型说明

ESR常用的的插件有2类,一类是js相关的http插件,通常都是实现一些esr的管理相关操作,例如bigdesk,head,kopf,gui等,基本上安装2个就能够满足日常的管理功能,推进使用bigdesk和head。另外一些是功能扩展类的插件,例如analysis-ik,delete-by-query,discovery-multicast等,此类插件大多采用java开放,实现了esr的plugin的接口。

插件配置

js管理类插件

这类插件只需要一个插件描述文件:plugin-descriptor.properties和一个插件实现目录_site,_site下放置一个index.html作为插件的首页即可。
plugin-descriptor.properties简短的内容为:
<pre>
description=bigdesk - A web front end for an esr cluster
version=esr2.0
site=true
name=bigdesk
</pre>

功能扩展类插件

这类插件可以没有页面,也不需要_site,仅仅需要plugin-descriptor.properties和功能实现的jar文件,如果需要其他第三方的jar也一并放到插件下就可以
plugin-descriptor.properties简短的内容为:
<pre>

mandatory elements for all plugins:

'description': simple summary of the plugin

description=http-basic for ESR

'version': plugin's version

version=1.0.0

'name': the plugin name

name=http-basic

mandatory elements for site plugins:

'site': set to true to indicate contents of the _site/

directory in the root of the plugin should be served.

site=false

mandatory elements for jvm plugins :

'jvm': true if the 'classname' class should be loaded

from jar files in the root directory of the plugin.

Note that only jar files in the root directory are

added to the classpath for the plugin! If you need

other resources, package them into a resources jar.

jvm=true

'classname': the name of the class to load, fully-qualified.

classname=com.xxxx.esr.plugin.http.HttpBasicServerPlugin

'java.version' version of java the code is built against

use the system property java.specification.version

version string must be a sequence of nonnegative decimal integers

separated by "."'s and may have leading zeros

java.version=${maven.compiler.target}

'elasticsearch.version' version of elasticsearch compiled against

You will have to release a new version of the plugin for each new

elasticsearch release. This version is checked when the plugin

is loaded so Elasticsearch will refuse to start in the presence of

plugins with the incorrect elasticsearch.version.

esr.version=2.0.0

deprecated elements for jvm plugins :

'isolated': true if the plugin should have its own classloader.

passing false is deprecated, and only intended to support plugins

that have hard dependencies against each other. If this is

not specified, then the plugin is isolated by default.

isolated=${elasticsearch.plugin.isolated}

</pre>


简单的java实现如下:
<pre>
public class HttpBasicServerPlugin extends Plugin {

private boolean enabledByDefault = true;
private final Settings settings;

@Inject public HttpBasicServerPlugin(Settings settings) {
    this.settings = settings;
}

@Override public String name() {
    return "http-basic-server-plugin";
}

@Override public String description() {
    return "HTTP Basic Server Plugin";
}

@Override
public Collection<Module> nodeModules() {
    Collection< Module> modules = Lists.newArrayList();
    if (settings.getAsBoolean("http.basic.enabled", enabledByDefault)) {
        return Collections.<Module>singletonList(new HttpBasicServerModule(settings));
    }
    return modules;
}
            
@Override public Settings additionalSettings() {
    if (settings.getAsBoolean("http.basic.enabled", enabledByDefault)) {
        return Settings.settingsBuilder().
                put("http.enabled", false).                    
                build();
    } else {
        return Settings.Builder.EMPTY_SETTINGS;
    }
}
 
@Override public Collection<Class<? extends LifecycleComponent>> nodeServices() {
     Collection<Class<? extends LifecycleComponent>> services = Lists.newArrayList();
     if (settings.getAsBoolean("http.basic.enabled", enabledByDefault)) {
         services.add(HttpBasicServer.class);
     }
     return services;
 }

}
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,971评论 6 342
  • 同志:在天堂的你可知,有时候死只是悲剧的一桩,而生却是另一桩悲剧的主干。我无法做到你那般洒脱,正如你当初无法潇洒的...
    miuoyo阅读 183评论 0 0
  • 初夏,从西安出发去吴起,一路忽晴忽雨,及至吴起陡然刮起风沙,沙尘在车灯下有如群蚊,打到玻璃上沙沙作响。一路不停歇的...
    张瀚澜阅读 330评论 0 1
  • 太阳当空毫不保留的散发着它的热情,照耀着湖边的那一个静静地坐在湖边赏景的人。 显然太阳太烈,在夏日最闷热的一天湖边...
    此城此警阅读 93评论 2 3