より具体的には、私がネットワーク ケーブルにつまずいて、ReDiS クラスターのマスターをそのクラスターの ReDiS スレーブから分割したとしましょう。マスターの数が 2 倍になった場合、クライアントが分割前の「最初の」マスターにのみ書き込むようにすることはできますか?
たとえば、次のプロパティを持つクラスターがあり、サブネット 192.168. 53 .* および 192.168. 105 .* 最終的に 6 人のマスターが必要ですか?
192.168 の ReDiS 1。53.1 :7000 (マスター)
192.168 の ReDiS 2。53.1 :7001 (マスター)
192.168 の ReDiS 3。53.1 :7002 (マスター)
192.168 の ReDiS 4。105.2 :7000 (スレーブ)
192.168 の ReDiS 5。105.2 :7001 (スレーブ)
192.168 の ReDiS 6。105.2 :7002 (スレーブ)
私は、ReDiS 4、ReDiS 5、および ReDiS 6 がすぐにマスターになり、最終的には次のようになると推測しています。
192.168 の ReDiS 1。53.1 :7000 (マスター)
192.168 の ReDiS 2。53.1 :7001 (マスター)
192.168 の ReDiS 3。53.1 :7002 (マスター) =======
//Snapped Cable//========
ReDiS 4 on 192.168. 105.2 :7000 (マスター)
ReDiS 5 on 192.168. 105.2 :7001 (マスター)
ReDiS 6 on 192.168. 105.2 :7002 (マスター)
また、断線したケーブルを交換すると、またこうなってしまいますよね?
192.168 の ReDiS 1。53.1 :7000 (マスター)
192.168 の ReDiS 2。53.1 :7001 (マスター)
192.168 の ReDiS 3。53.1 :7002 (マスター)
192.168 の ReDiS 4。105.2 :7000 (スレーブ)
192.168 の ReDiS 5。105.2 :7001 (スレーブ)
192.168 の ReDiS 6。105.2 :7002 (スレーブ)
マスターが「あるべき」ものであることを認識するようにクライアントに書き込み、192.168.1 のマスターにのみ書き込むようにするのは賢明ですか。53 .*?
このシナリオの問題を軽減する例として、次の変数を、のメンバーによって表される ReDiS の 1 つがfirstThreeMasters
スレーブになったときにのみ更新するようにできますか?
firstThreeMasters = [ "192.168.53.1:7000", "192.168.53.1:7001", "192.168.53.1:7002" ]
(私のクライアント コードの動作がこの質問の主題ですが、これは serverfault.com に属していると思いますか?コメントでアドバイスするか、移動することをお勧めします。)