1

プラグイン用に、ElasticSearch クラスター全体で共有されるいくつかの単純な状態 (キーと値のペア) を保存したいと考えています。(NB -- プラグインは、状態を保存するための単なる手段/方法ではありません。プラグインでそのような状態を使用したいと考えています。) クラスター更新設定 API を介してこれを実行しようとしましたが、

Settings newSettings = ImmutableSettings.settingsBuilder()
    .put(MY_SETTING, MY_VALUE).build();
client.admin().cluster().prepareUpdateSettings()
    .setTransientSettings(newSettings).execute().actionGet();

MY_SETTING残念ながら、は に登録されていないため、これは機能しませんIndexDynamicSettingsModuleaddDynamicSettingそのモジュール (おそらくそのメソッド)にフックする方法がわかりません。カスタムのキー値を一時的なクラスター設定に保存する方法はありますか? ( HTTP API を参照)。

代替案に関しては、ノード状態 API はカスタム値を返すことができるようですが、それらは状態として保存できるものではなく、プラグインで計算して返すものです。値を静的変数に格納し、それらをブロードキャスト アクションでクラスター全体に配布することはオプションですが、存在する場合は単純なものを好みます。

どのソリューションも、ElasticSearch のバージョン アップグレードに対して適度に堅牢である必要があります。

前もって感謝します!

4

1 に答える 1