1. 程式人生 > >elasticsearch插件開發

elasticsearch插件開發

div conf ddr 過濾 elastic nod 描述 node image

1.ES插件,繼承自Plugin基類,其內部方法比較簡單。

技術分享圖片

1.1 描述了插件基本信息,

技術分享圖片

1.2通過重載多個onModule方法來操作指定的model。節點啟動的時候會調用onModule方法

技術分享圖片

依次調用各插件的OnModule方法,根據OnModule參數指定的models類型來依次操作對應的Model,最後再初始化每個model。比如我們這裏修改了3個modes
為RestModule添加一個過濾器
public void onModule(RestModule module) { module.addRestAction(AuthorityRestFilter.class); }
為actionModels添加自定義過濾器AuthorityActionFilter
public void onModule(final ActionModule module) {
    module.registerFilter(AuthorityActionFilter.class);
}
使用自定義AuthorityTransportService來代替默認的TransportService
public void onModule(final TransportModule module) {
    module.setTransportService(AuthorityTransportService.class, name());
}
1.3 添加自定義service.
LifecycleComponent接口隨著Node生命周期的變化,依次調用其實現類的doStart 、doStop 和 doClose方法。
1     public Collection<Class<? extends LifecycleComponent>> nodeServices() {
2         final Collection<Class<? extends LifecycleComponent>> services = new ArrayList<Class<? extends LifecycleComponent>>();
3         services.add(ConfigurationService.class);
4         return services;
5     }


elasticsearch插件開發