日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elasticSearch6源码分析(9)ActionModule

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticSearch6源码分析(9)ActionModule 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.ActionModule概述

/*** Builds and binds the generic action map, all {@link TransportAction}s, and {@link ActionFilters}.*/

1.1 創建TransportAction

static Map<String, ActionHandler<?, ?>> setupActions(List<ActionPlugin> actionPlugins) {// Subclass NamedRegistry for easy registrationclass ActionRegistry extends NamedRegistry<ActionHandler<?, ?>> {ActionRegistry() {super("action");}public void register(ActionHandler<?, ?> handler) {register(handler.getAction().name(), handler);}public <Request extends ActionRequest, Response extends ActionResponse> void register(Action<Response> action, Class<? extends TransportAction<Request, Response>> transportAction,Class<?>... supportTransportActions) {register(new ActionHandler<>(action, transportAction, supportTransportActions));}}ActionRegistry actions = new ActionRegistry();actions.register(MainAction.INSTANCE, TransportMainAction.class);actions.register(NodesInfoAction.INSTANCE, TransportNodesInfoAction.class);actions.register(RemoteInfoAction.INSTANCE, TransportRemoteInfoAction.class);actions.register(NodesStatsAction.INSTANCE, TransportNodesStatsAction.class);actions.register(NodesUsageAction.INSTANCE, TransportNodesUsageAction.class);actions.register(NodesHotThreadsAction.INSTANCE, TransportNodesHotThreadsAction.class);actions.register(ListTasksAction.INSTANCE, TransportListTasksAction.class);actions.register(GetTaskAction.INSTANCE, TransportGetTaskAction.class);actions.register(CancelTasksAction.INSTANCE, TransportCancelTasksAction.class);actions.register(ClusterAllocationExplainAction.INSTANCE, TransportClusterAllocationExplainAction.class);actions.register(ClusterStatsAction.INSTANCE, TransportClusterStatsAction.class);actions.register(ClusterStateAction.INSTANCE, TransportClusterStateAction.class);actions.register(ClusterHealthAction.INSTANCE, TransportClusterHealthAction.class);actions.register(ClusterUpdateSettingsAction.INSTANCE, TransportClusterUpdateSettingsAction.class);actions.register(ClusterRerouteAction.INSTANCE, TransportClusterRerouteAction.class);actions.register(ClusterSearchShardsAction.INSTANCE, TransportClusterSearchShardsAction.class);actions.register(PendingClusterTasksAction.INSTANCE, TransportPendingClusterTasksAction.class);actions.register(PutRepositoryAction.INSTANCE, TransportPutRepositoryAction.class);actions.register(GetRepositoriesAction.INSTANCE, TransportGetRepositoriesAction.class);actions.register(DeleteRepositoryAction.INSTANCE, TransportDeleteRepositoryAction.class);actions.register(VerifyRepositoryAction.INSTANCE, TransportVerifyRepositoryAction.class);actions.register(GetSnapshotsAction.INSTANCE, TransportGetSnapshotsAction.class);actions.register(DeleteSnapshotAction.INSTANCE, TransportDeleteSnapshotAction.class);actions.register(CreateSnapshotAction.INSTANCE, TransportCreateSnapshotAction.class);actions.register(RestoreSnapshotAction.INSTANCE, TransportRestoreSnapshotAction.class);actions.register(SnapshotsStatusAction.INSTANCE, TransportSnapshotsStatusAction.class);actions.register(IndicesStatsAction.INSTANCE, TransportIndicesStatsAction.class);actions.register(IndicesSegmentsAction.INSTANCE, TransportIndicesSegmentsAction.class);actions.register(IndicesShardStoresAction.INSTANCE, TransportIndicesShardStoresAction.class);actions.register(CreateIndexAction.INSTANCE, TransportCreateIndexAction.class);actions.register(ResizeAction.INSTANCE, TransportResizeAction.class);actions.register(RolloverAction.INSTANCE, TransportRolloverAction.class);actions.register(DeleteIndexAction.INSTANCE, TransportDeleteIndexAction.class);actions.register(GetIndexAction.INSTANCE, TransportGetIndexAction.class);actions.register(OpenIndexAction.INSTANCE, TransportOpenIndexAction.class);actions.register(CloseIndexAction.INSTANCE, TransportCloseIndexAction.class);actions.register(IndicesExistsAction.INSTANCE, TransportIndicesExistsAction.class);actions.register(TypesExistsAction.INSTANCE, TransportTypesExistsAction.class);actions.register(GetMappingsAction.INSTANCE, TransportGetMappingsAction.class);actions.register(GetFieldMappingsAction.INSTANCE, TransportGetFieldMappingsAction.class,TransportGetFieldMappingsIndexAction.class);actions.register(PutMappingAction.INSTANCE, TransportPutMappingAction.class);actions.register(IndicesAliasesAction.INSTANCE, TransportIndicesAliasesAction.class);actions.register(UpdateSettingsAction.INSTANCE, TransportUpdateSettingsAction.class);actions.register(AnalyzeAction.INSTANCE, TransportAnalyzeAction.class);actions.register(PutIndexTemplateAction.INSTANCE, TransportPutIndexTemplateAction.class);actions.register(GetIndexTemplatesAction.INSTANCE, TransportGetIndexTemplatesAction.class);actions.register(DeleteIndexTemplateAction.INSTANCE, TransportDeleteIndexTemplateAction.class);actions.register(ValidateQueryAction.INSTANCE, TransportValidateQueryAction.class);actions.register(RefreshAction.INSTANCE, TransportRefreshAction.class);actions.register(FlushAction.INSTANCE, TransportFlushAction.class);actions.register(SyncedFlushAction.INSTANCE, TransportSyncedFlushAction.class);actions.register(ForceMergeAction.INSTANCE, TransportForceMergeAction.class);actions.register(UpgradeAction.INSTANCE, TransportUpgradeAction.class);actions.register(UpgradeStatusAction.INSTANCE, TransportUpgradeStatusAction.class);actions.register(UpgradeSettingsAction.INSTANCE, TransportUpgradeSettingsAction.class);actions.register(ClearIndicesCacheAction.INSTANCE, TransportClearIndicesCacheAction.class);actions.register(GetAliasesAction.INSTANCE, TransportGetAliasesAction.class);actions.register(AliasesExistAction.INSTANCE, TransportAliasesExistAction.class);actions.register(GetSettingsAction.INSTANCE, TransportGetSettingsAction.class);actions.register(IndexAction.INSTANCE, TransportIndexAction.class);actions.register(GetAction.INSTANCE, TransportGetAction.class);actions.register(TermVectorsAction.INSTANCE, TransportTermVectorsAction.class);actions.register(MultiTermVectorsAction.INSTANCE, TransportMultiTermVectorsAction.class,TransportShardMultiTermsVectorAction.class);actions.register(DeleteAction.INSTANCE, TransportDeleteAction.class);actions.register(UpdateAction.INSTANCE, TransportUpdateAction.class);actions.register(MultiGetAction.INSTANCE, TransportMultiGetAction.class,TransportShardMultiGetAction.class);actions.register(BulkAction.INSTANCE, TransportBulkAction.class,TransportShardBulkAction.class);actions.register(SearchAction.INSTANCE, TransportSearchAction.class);actions.register(SearchScrollAction.INSTANCE, TransportSearchScrollAction.class);actions.register(MultiSearchAction.INSTANCE, TransportMultiSearchAction.class);actions.register(ExplainAction.INSTANCE, TransportExplainAction.class);actions.register(ClearScrollAction.INSTANCE, TransportClearScrollAction.class);actions.register(RecoveryAction.INSTANCE, TransportRecoveryAction.class);actions.register(NodesReloadSecureSettingsAction.INSTANCE, TransportNodesReloadSecureSettingsAction.class);//Indexed scriptsactions.register(PutStoredScriptAction.INSTANCE, TransportPutStoredScriptAction.class);actions.register(GetStoredScriptAction.INSTANCE, TransportGetStoredScriptAction.class);actions.register(DeleteStoredScriptAction.INSTANCE, TransportDeleteStoredScriptAction.class);actions.register(FieldCapabilitiesAction.INSTANCE, TransportFieldCapabilitiesAction.class,TransportFieldCapabilitiesIndexAction.class);actions.register(PutPipelineAction.INSTANCE, PutPipelineTransportAction.class);actions.register(GetPipelineAction.INSTANCE, GetPipelineTransportAction.class);actions.register(DeletePipelineAction.INSTANCE, DeletePipelineTransportAction.class);actions.register(SimulatePipelineAction.INSTANCE, SimulatePipelineTransportAction.class);actionPlugins.stream().flatMap(p -> p.getActions().stream()).forEach(actions::register);// Persistent tasks:actions.register(StartPersistentTaskAction.INSTANCE, StartPersistentTaskAction.TransportAction.class);actions.register(UpdatePersistentTaskStatusAction.INSTANCE, UpdatePersistentTaskStatusAction.TransportAction.class);actions.register(CompletionPersistentTaskAction.INSTANCE, CompletionPersistentTaskAction.TransportAction.class);actions.register(RemovePersistentTaskAction.INSTANCE, RemovePersistentTaskAction.TransportAction.class);return unmodifiableMap(actions.getRegistry());}

其類層次結構如下

?

1.2 創建ActionFilter

private ActionFilters setupActionFilters(List<ActionPlugin> actionPlugins) {return new ActionFilters(Collections.unmodifiableSet(actionPlugins.stream().flatMap(p -> p.getActionFilters().stream()).collect(Collectors.toSet())));}

2.ActionModule使用

ActionModule actionModule = new ActionModule(false, settings, clusterModule.getIndexNameExpressionResolver(),settingsModule.getIndexScopedSettings(), settingsModule.getClusterSettings(), settingsModule.getSettingsFilter(),threadPool, pluginsService.filterPlugins(ActionPlugin.class), client, circuitBreakerService, usageService);modules.add(actionModule);final RestController restController = actionModule.getRestController(); actionModule.initRestHandlers(() -> clusterService.state().nodes());

增加了rest服務的處理handler

public void initRestHandlers(Supplier<DiscoveryNodes> nodesInCluster) {List<AbstractCatAction> catActions = new ArrayList<>();Consumer<RestHandler> registerHandler = a -> {if (a instanceof AbstractCatAction) {catActions.add((AbstractCatAction) a);}};registerHandler.accept(new RestMainAction(settings, restController));registerHandler.accept(new RestNodesInfoAction(settings, restController, settingsFilter));registerHandler.accept(new RestRemoteClusterInfoAction(settings, restController));registerHandler.accept(new RestNodesStatsAction(settings, restController));registerHandler.accept(new RestNodesUsageAction(settings, restController));registerHandler.accept(new RestNodesHotThreadsAction(settings, restController));registerHandler.accept(new RestClusterAllocationExplainAction(settings, restController));registerHandler.accept(new RestClusterStatsAction(settings, restController));registerHandler.accept(new RestClusterStateAction(settings, restController, settingsFilter));registerHandler.accept(new RestClusterHealthAction(settings, restController));registerHandler.accept(new RestClusterUpdateSettingsAction(settings, restController));registerHandler.accept(new RestClusterGetSettingsAction(settings, restController, clusterSettings, settingsFilter));registerHandler.accept(new RestClusterRerouteAction(settings, restController, settingsFilter));registerHandler.accept(new RestClusterSearchShardsAction(settings, restController));registerHandler.accept(new RestPendingClusterTasksAction(settings, restController));registerHandler.accept(new RestPutRepositoryAction(settings, restController));registerHandler.accept(new RestGetRepositoriesAction(settings, restController, settingsFilter));registerHandler.accept(new RestDeleteRepositoryAction(settings, restController));registerHandler.accept(new RestVerifyRepositoryAction(settings, restController));registerHandler.accept(new RestGetSnapshotsAction(settings, restController));registerHandler.accept(new RestCreateSnapshotAction(settings, restController));registerHandler.accept(new RestRestoreSnapshotAction(settings, restController));registerHandler.accept(new RestDeleteSnapshotAction(settings, restController));registerHandler.accept(new RestSnapshotsStatusAction(settings, restController));registerHandler.accept(new RestGetIndicesAction(settings, restController));registerHandler.accept(new RestIndicesStatsAction(settings, restController));registerHandler.accept(new RestIndicesSegmentsAction(settings, restController));registerHandler.accept(new RestIndicesShardStoresAction(settings, restController));registerHandler.accept(new RestGetAliasesAction(settings, restController));registerHandler.accept(new RestIndexDeleteAliasesAction(settings, restController));registerHandler.accept(new RestIndexPutAliasAction(settings, restController));registerHandler.accept(new RestIndicesAliasesAction(settings, restController));registerHandler.accept(new RestCreateIndexAction(settings, restController));registerHandler.accept(new RestResizeHandler.RestShrinkIndexAction(settings, restController));registerHandler.accept(new RestResizeHandler.RestSplitIndexAction(settings, restController));registerHandler.accept(new RestRolloverIndexAction(settings, restController));registerHandler.accept(new RestDeleteIndexAction(settings, restController));registerHandler.accept(new RestCloseIndexAction(settings, restController));registerHandler.accept(new RestOpenIndexAction(settings, restController));registerHandler.accept(new RestUpdateSettingsAction(settings, restController));registerHandler.accept(new RestGetSettingsAction(settings, restController));registerHandler.accept(new RestAnalyzeAction(settings, restController));registerHandler.accept(new RestGetIndexTemplateAction(settings, restController));registerHandler.accept(new RestPutIndexTemplateAction(settings, restController));registerHandler.accept(new RestDeleteIndexTemplateAction(settings, restController));registerHandler.accept(new RestPutMappingAction(settings, restController));registerHandler.accept(new RestGetMappingAction(settings, restController));registerHandler.accept(new RestGetFieldMappingAction(settings, restController));registerHandler.accept(new RestRefreshAction(settings, restController));registerHandler.accept(new RestFlushAction(settings, restController));registerHandler.accept(new RestSyncedFlushAction(settings, restController));registerHandler.accept(new RestForceMergeAction(settings, restController));registerHandler.accept(new RestUpgradeAction(settings, restController));registerHandler.accept(new RestUpgradeStatusAction(settings, restController));registerHandler.accept(new RestClearIndicesCacheAction(settings, restController));registerHandler.accept(new RestIndexAction(settings, restController));registerHandler.accept(new RestGetAction(settings, restController));registerHandler.accept(new RestGetSourceAction(settings, restController));registerHandler.accept(new RestMultiGetAction(settings, restController));registerHandler.accept(new RestDeleteAction(settings, restController));registerHandler.accept(new org.elasticsearch.rest.action.document.RestCountAction(settings, restController));registerHandler.accept(new RestTermVectorsAction(settings, restController));registerHandler.accept(new RestMultiTermVectorsAction(settings, restController));registerHandler.accept(new RestBulkAction(settings, restController));registerHandler.accept(new RestUpdateAction(settings, restController));registerHandler.accept(new RestSearchAction(settings, restController));registerHandler.accept(new RestSearchScrollAction(settings, restController));registerHandler.accept(new RestClearScrollAction(settings, restController));registerHandler.accept(new RestMultiSearchAction(settings, restController));registerHandler.accept(new RestValidateQueryAction(settings, restController));registerHandler.accept(new RestExplainAction(settings, restController));registerHandler.accept(new RestRecoveryAction(settings, restController));registerHandler.accept(new RestReloadSecureSettingsAction(settings, restController));// Scripts APIregisterHandler.accept(new RestGetStoredScriptAction(settings, restController));registerHandler.accept(new RestPutStoredScriptAction(settings, restController));registerHandler.accept(new RestDeleteStoredScriptAction(settings, restController));registerHandler.accept(new RestFieldCapabilitiesAction(settings, restController));// Tasks APIregisterHandler.accept(new RestListTasksAction(settings, restController, nodesInCluster));registerHandler.accept(new RestGetTaskAction(settings, restController));registerHandler.accept(new RestCancelTasksAction(settings, restController, nodesInCluster));// Ingest APIregisterHandler.accept(new RestPutPipelineAction(settings, restController));registerHandler.accept(new RestGetPipelineAction(settings, restController));registerHandler.accept(new RestDeletePipelineAction(settings, restController));registerHandler.accept(new RestSimulatePipelineAction(settings, restController));// CAT APIregisterHandler.accept(new RestAllocationAction(settings, restController));registerHandler.accept(new RestShardsAction(settings, restController));registerHandler.accept(new RestMasterAction(settings, restController));registerHandler.accept(new RestNodesAction(settings, restController));registerHandler.accept(new RestTasksAction(settings, restController, nodesInCluster));registerHandler.accept(new RestIndicesAction(settings, restController, indexNameExpressionResolver));registerHandler.accept(new RestSegmentsAction(settings, restController));// Fully qualified to prevent interference with rest.action.count.RestCountActionregisterHandler.accept(new org.elasticsearch.rest.action.cat.RestCountAction(settings, restController));// Fully qualified to prevent interference with rest.action.indices.RestRecoveryActionregisterHandler.accept(new org.elasticsearch.rest.action.cat.RestRecoveryAction(settings, restController));registerHandler.accept(new RestHealthAction(settings, restController));registerHandler.accept(new org.elasticsearch.rest.action.cat.RestPendingClusterTasksAction(settings, restController));registerHandler.accept(new RestAliasAction(settings, restController));registerHandler.accept(new RestThreadPoolAction(settings, restController));registerHandler.accept(new RestPluginsAction(settings, restController));registerHandler.accept(new RestFielddataAction(settings, restController));registerHandler.accept(new RestNodeAttrsAction(settings, restController));registerHandler.accept(new RestRepositoriesAction(settings, restController));registerHandler.accept(new RestSnapshotAction(settings, restController));registerHandler.accept(new RestTemplatesAction(settings, restController));for (ActionPlugin plugin : actionPlugins) {for (RestHandler handler : plugin.getRestHandlers(settings, restController, clusterSettings, indexScopedSettings,settingsFilter, indexNameExpressionResolver, nodesInCluster)) {registerHandler.accept(handler);}}registerHandler.accept(new RestCatAction(settings, restController, catActions));}

類層次關系如下:

?

3.小結

actionModule定義了處理tcp和http服務的handler。

?

轉載于:https://www.cnblogs.com/davidwang456/p/10143919.html

總結

以上是生活随笔為你收集整理的elasticSearch6源码分析(9)ActionModule的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 秋霞成人av | 三年大全国语中文版免费播放 | aaa毛片视频| 国产原创视频 | 222aaa| www.199麻豆 | 奇米第四色在线 | 人妻中文字幕一区 | 国产无套粉嫩白浆内谢 | 亚州色图欧美色图| 国产无遮挡一区二区三区毛片日本 | 五十路六十路 | 国产69精品久久久久久 | a在线免费 | 不卡的av电影 | 国产成人无码精品久久 | 亚洲视频天堂 | 天天综合永久 | 深喉口爆一区二区三区 | 九热在线 | 玩弄人妻少妇500系列视频 | 日韩精品电影 | 国产福利免费观看 | 亚洲春色www | 色婷婷一区二区 | 日本一区二区三区在线播放 | 麻豆精品91| 国产中文字字幕乱码无限 | 亚洲人人精品 | 国产美女一区二区 | 久久网中文字幕 | 91在线播放国产 | av小次郎收藏 | 在线综合色 | 日韩操比 | 每日av在线 | 成人动漫亚洲 | 亚洲视频在线免费 | 三级理论电影 | 欧美人日b | 深爱综合网 | 女人一区二区 | 91久久久国产精品 | 国产激情免费视频 | 一区二区三区高清在线观看 | 国产精品一二三四五 | 欧美与黑人午夜性猛交久久久 | 小视频在线免费观看 | 国产一区视频观看 | 欧美午夜精品一区二区 | 仙踪林久久久久久久999 | 超碰77| 日韩免费黄色 | 产乳奶汁h文1v1 | 色呦呦在线看 | 国产级毛片| 国产精品美女在线观看 | 欧美绿帽合集xxxxx | 在线视频播放大全 | 先锋影音在线 | 99婷婷 | 国产一区二区视频在线播放 | 这里只有精品免费视频 | 久久国产夫妻 | 成人羞羞国产免费动态 | 青娱乐国产在线视频 | 91精品欧美一区二区三区 | 成人一区二区三区在线 | 少妇被躁爽到高潮无码人狍大战 | 国产自产视频 | 成人久久免费 | 亚洲一区天堂 | 各处沟厕大尺度偷拍女厕嘘嘘 | 色婷婷av国产精品 | 久久91亚洲人成电影网站 | 天天精品视频 | 一区二区三区不卡视频 | 大白屁股一区二区视频 | 一区二区麻豆 | 中文在线观看免费网站 | 久久久亚洲一区二区三区 | 国产精品一区一区三区 | 91高跟黑色丝袜呻吟动态图 | 中文字幕久久久久久久 | 9久9久9久女女女九九九一九 | 长河落日电视连续剧免费观看01 | 在线观看日本中文字幕 | 欧美激情图 | 欧美青草视频 | 国产性xxxx高清 | 亚洲午夜免费 | www.自拍| 日韩 在线| 亚洲一区二区三区四区 | 黄色高清在线观看 | 精品日韩一区二区三区四区 | 在线免费观看av网 | 无码少妇精品一区二区免费动态 | 国内视频精品 |