我想为插件存储一些在 ElasticSearch 集群中共享的简单状态(键值对)。(注意——插件不仅仅是一种存储状态的工具/方法,我想在插件中使用这种状态。)我尝试通过集群更新设置 API 执行此操作,
Settings newSettings = ImmutableSettings.settingsBuilder()
.put(MY_SETTING, MY_VALUE).build();
client.admin().cluster().prepareUpdateSettings()
.setTransientSettings(newSettings).execute().actionGet();
但是,不幸的是,这不起作用,因为MY_SETTING
没有在IndexDynamicSettingsModule
. 我不知道如何连接到那个模块(可能是它的addDynamicSetting
方法)。有没有办法在瞬态集群设置中存储自定义键值?(参见HTTP API)。
至于替代方案,似乎节点状态 API 可以返回自定义值,但这些更多的是人们可以通过插件计算和返回的东西,而不是可以存储为状态的东西。将值存储在静态变量中,并通过广播操作将这些值分布在整个集群中是一种选择,但如果它存在,我更喜欢简单的东西。
任何解决方案都需要对 ElasticSearch 版本升级相当稳健。
提前致谢!