5.11.redisクラスタ実験:複数のマスタ書き込み、読み取りと書き込みの分離、高可用性
、クラスタをRedisのマスターの複数を提供する、分散データがマスタの複数に格納されてもよい。スレーブと各マスタであり、自動的に別々の読み取りおよび書き込みを行い、障害が発生した場合、マスターは、自動的にスレーブを切り替えますマスターに、高可用性を実現します。
5.11.1マルチマスタ書き込み - 分散型大量データ記憶原理
マルチマスタの書き込みは、大量のデータ分散ストレージを実現することができます。
書き込みデータRedisのクラスタは、マスターアップのいずれかを実行するための要求を送信することができるとき。
書き込みをするときセットKEY1の値1行う場合、各マスタがkey1対応CRC16値を計算し、ハッシュスロットモジュロ16384、対応するハッシュスロットを見つけるKEY1、および、対応するマスターは、その場合には、対応するマスターを見つけますこの書き込みの実装までのコマンドのマスターは、次のように先の、そしてない場合は、このマスターに、書き込みを行うことを、クライアントをクライアントに移動エラーに戻り、教えてくれます:
[root@cache01 data]# redis-cli -h 192.168.75.187 -p 7001
192.168.75.187:7001>
192.168.75.187:7001> set key1 value1
(error) MOVED 9189 192.168.75.187:7002
192.168.75.187:7001>
サーバー上の我々192.168.75.187は、マスター7002ポートを開始します
[root@cache01 data]# redis-cli -h 192.168.75.187 -p 7002
192.168.75.187:7002> set key1 value1
OK
192.168.75.187:7002>
何各データがマスタ上に存在のみが可能であるマルチマスタに書き込まれ、マスタは、データ、10マスタの分散ファイルシステムの200ワットの異なるデータストレージを担当して、各マスタは、20ワットを格納するための責任を負いますデータの断片。
大量のデータを必要とする、それがビッグデータを伴うだろう、と分散伴います。
大型的java系统架构,或者大数据系统架构,一般都专注分布式,与分布式有关的技术有:
図1に示すように、分散ストレージのHadoop HDFS。
2、分散リソーススケジューリングHadoopの糸。
図3に示すように、分散コンピューティングのHadoopのMapReduce /ハイブ。
4、NoSQLの分散データベースのHBase。
5、分散協調飼育係。
図6に示すように、汎用エンジンの点火を計算分散しました。
図7に示すように、分散型リアルタイム計算エンジン嵐。
8、検索エンジンのelasticsearch
elasticsearchインデックスときにディスクにfsyncを定期的に続く最初の書き込みキャッシュメモリ、ブラシOSのキャッシュに毎秒のデータ、。elasticsearch、それがインデックス作成を実行するノードにルーティングされる値を、ルーティング/ドキュメントIDに基づいて説明します。そして、クラスタをRedisの、あなたはそれを行うには、他の母校にリダイレクト、クライアントに伝える、ハッシュスロットのいずれかのマスターキーの後に計算され、任意のマスターに書き込むことができます。このようなコアのアイデアの多くの内部のHadoop、スパーク、嵐のようなスケジューリングelasticsearchと類似しているクラスタRedisの分散、および分散技術は、類似しています。
。5.11.2実験1:異なるマスタースレーブその個別の読み取りと書き込み
この中で、クラスタをRedisのデータ・スレーブを読みたい場合は、使用する必要はRedisの-CLIを-cスタートして、読み取り専用コマンドを送信し、その後、GET KEY1データを読み込みます。
[root@cache01 data]# redis-cli -c -h 192.168.75.187 -p 7001
192.168.75.187:7001> get key1
-> Redirected to slot [9189] located at 192.168.75.187:7002
"value1"
192.168.75.187:7002>
開始するのRedis-CLI -cコマンドを使用した後、クラスタは自動的に基礎となるオペレーティング・キーに従ってリダイレクト、またはそれ以上、KEY1コマンドは、リダイレクトサーバー192.168.75.187:7002からデータを取得するために取得されますRedisの。
以下、セットキー2値2コマンド、それが192.168.75.187:7003書き込み上のサーバーにリダイレクトされます。
192.168.75.187:7002> set key2 value2
-> Redirected to slot [4998] located at 192.168.75.187:7003
OK
192.168.75.187:7003>
別々の読み取りと書き込みのRedisのクラスタは、あなたが特定の制限的デフォルト、Redisのクラスターの中核概念があるでしょうか。
-
主に、スレーブの可用性をどうする、それぞれが1つのまたは2つのマスタースレーブにリンクされている、主な機能は以下のとおりです。
-
ホットスペアのデータを実行してください。
-
スタンバイ・マスターのメインスイッチは、高可用性を実現するために失敗した場合。
-
-
クラスタのデフォルトはスレーブノードでサポートされていないRedisの読み取りまたは書き込みは、マスター・スレーブ・アーキテクチャを構築するために私達とマニュアルベースのレプリケーションは同じではありません。
なぜ、Redisのクラスタデフォルトスレーブノードは、読み取りまたは書き込みをサポートしていませんか?
あなたは読み取りと書き込みの分離ない場合は、メインのRedisのクラスタアーキテクチャから、非常に複雑になると、クライアントは、読み取りと書き込みの分離は、クラスタのサポートは非常に良いではありませんRedisのjedis、それはデフォルトの読み取りと書き込みのあるあなたが最もしたい場合は、マスターまで実行されています人気のjedis別々の読み取りおよび書き込みアクセスのRedisのクラスタを行い、それが自分自身の小さなjedisソースを変更する必要があり、コストが比較的高いですが、自分のjedisに基づいて、それをパッケージ化し、自分で別の読み取りおよび書き込みアクセスAPIのRedisのクラスタを行います。
Redisのクラスタアーキテクチャでは、マスタは任意に拡張することができるが、横任意のスレーブノードを拡張するために、より高い読み出しスループットをサポートするために、マスターマルチスレーブ・アーキテクチャの確立に主に起因するもの、のための別個の読み取りおよび書き込み、あなたが読み取りまたは書き込みスループットするより高いスループットをサポートしたい場合は、あなたが前に拡張スレーブとRedisのレプリケーションを使用して、読み取りスループットが高い支援の効果を達成できること、マスタースケールで直接することができ、効果は同じです。
5.11.3第二の実験:.マスターとスレーブが自動的に切り替えられます
>高可用性 - 自動フェイルオーバーを実験
[root@cache01 redis]# redis-cli --cluster check 192.168.75.187:7001
192.168.75.187:クラスタ検出が見つかったのRedis、マスター192.168.75.187:7001対応するスレーブがRedisのあるRedisの7004、我々は192.168.75.187:7001を殺す、それに対応するスレーブがマスターに自動的に切り替えることができます参照してください。
192.168.75.187:7004は自動的にマスターに切り替えられました。
もう一度お試しください187:7001を再起動するには、回復し、自動的に19に奴隷としてマウント:7004を上記に。