ホームページ  >  記事  >  データベース  >  Redisクラスターでのスプリットブレインを防ぐ方法

Redisクラスターでのスプリットブレインを防ぐ方法

(*-*)浩
(*-*)浩オリジナル
2019-11-20 14:39:297454ブラウズ

Redisクラスターでのスプリットブレインを防ぐ方法

#Redis クラスターのスプリット ブレインとは何ですか?

Redis クラスターのブレイン スプリットとは、ネットワークの問題により、Redis マスター ノード、Redis スレーブ ノード、センチネル クラスターが異なるネットワーク パーティションにあることを意味します。このとき、センチネル クラスターは存在を感知できません。スレーブ ノードをマスター ノードに昇格させます。 (推奨される学習:

redis ビデオ チュートリアル )

現時点では、ちょうど脳が 2 つに分かれているように、2 つの異なるマスター ノードがあります。

クラスターのスプリット ブレイン問題では、クライアントが元のマスター ノードに基づいてデータを書き込み続けると、新しいマスター ノードはデータを同期できなくなります。ネットワークの問題が解決すると、センチネルはクラスタは元のマスター ノードを元のマスター ノードに置き換えます。ノードはスレーブ ノードに縮小されます。このとき、新しいマスターからデータを同期すると、大量のデータ損失が発生します。

Redisクラスターでのスプリットブレインを防ぐ方法解決策

redis 構成ファイルには 2 つのパラメータがあります

min-slaves-to-write 3
min-slaves-max-lag 10

最初のパラメータは最小値を表しますマスターに接続されているスレーブの数

2 番目のパラメーターは、スレーブがマスターに接続するまでの最大遅延時間を示します

マスターに接続されているスレーブの数が最初のパラメーターより少ない場合、および ping 遅延時間が 2 番目のパラメーター以下の場合、マスターは書き込みリクエストを拒否します。これら 2 つのパラメーターを設定した後、クラスターのブレイン スプリットが発生すると、元のマスター ノードは書き込みリクエストを拒否します。これにより、データ同期の量や失われるデータの量を減らすことができます。

注: 新しいバージョンの redis.conf ファイルのパラメーターは

min-replicas-to-write 3
min-replicas-max-lag 10

になりました。redis での非同期レプリケーションの場合のデータ損失の問題には、これら 2 つのパラメーターも使用できます。

以上がRedisクラスターでのスプリットブレインを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。