elasticsearch插件開發
阿新 • • 發佈:2017-12-25
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插件開發