14 ノードのクラスターに Elasticsearch が組み込まれた Java アプリケーションがあります。すべてのデータは中央データベースに存在し、クエリのためにelasticsearchでインデックスが作成されます。完全な再インデックスはいつでも実行できます。
システムは非常にクエリが多く、書き込みの量は少ないです。ドキュメントの数は、たとえば 300.000 を超えることはありません。各ドキュメントのサイズは、数個の ID から、たとえば数ページのワード ドキュメントから抽出されたテキストまで、大きく異なります。
完全に故障した場合でも、システムが機能するには 1 つまたは 2 つのノードがあれば十分であることを確認したいと思います。
データのマスター コピーがデータベースにあるため、書き込みの一貫性は問題にならないはずです。また、ES は最新バージョンを使用して競合するデータを解決できるようです (この場合は問題ありません)。
私の最初の方法は、1 つのシャードと 13 のレプリカを使用することです。これにより、すべてのノードがすべてのデータにアクセスできるようになります。これは、2 つのシャード / 13 のレプリカを使用することでも実現できます。したがって、すべてのデータを確実に利用できるようにするために、レプリカの数はノードの数 - 1 にする必要があります。 )。
ノード数の要件が「常に 2 つのノードが必要」に減る場合、「x/ノード数 - 2」のシャード/レプリカ分散で十分です。
だから、質問のために:
上記のセットアップと私の考えが正しいと主張すると、1 シャード/13 レプリカのセットアップは理にかなっていますか、それともシャードを追加して実行することで何か得られるものがありますか?たとえば、4 シャード/13 レプリカのセットアップを実行しますか?