0

一度に 1 つずつノードのクラスターを起動しようとしていますが、bootstrap-expect 値について少し混乱しています。

セットアップ方法は、consul が bootstrap-expect で起動され、起動後にconsul join実行されることです。

現在、展開セットのブートストラップ期待値はクラスター内のノード数に設定されており、リーダーはその数の後に選出されます。

ただし、bootstrap-expect が 1 に設定されている場合 (すべてのノードを待たずにクラスターを作成できるようにするためのプロセスと考えられます)、奇妙なことが起こります。

したがって、最初に、各ノードは自分がリーダーであると考えます - これは、bootstrap-expect が 1 に設定されているため、期待されます。クラスターはまだ自分自身をクラスター リーダーと考えています。

ノードがクラスターに参加するときに、新しいリーダーを選出しないのはなぜですか? または、少なくとも既存のリーダーを尊重しますか?

4

1 に答える 1

1

これが「意図的に」作ったスプリットブレインと呼ばれる状態です。各サーバーは自分がリーダーであると考えており、独自のバージョンのログを持っており、これらの各バージョンは互いに調整できません。スプリット ブレインは回復が難しいことで有名です。サーバーはクラスター状態がどうあるべきかについて合意できないため、新しいリーダーを誰にするべきかを決定できず、選挙が成功しないまま継続します。その理由について詳しくは、Raft を参照してください。

于 2015-12-12T22:04:47.427 に答える