私たちは見てみましょうあなたの参照を共有することを学ぶ、最近GETで新しい知識をたくさん見て、それは、Java上で動作する方法を見て、Redisのセンチネルを。Javaのアーキテクチャでは、詳細なマインドマップのルートにもコメントを取得することができますが必要です!
何であるのRedis Sentinelは?
私たちは、あらゆる企業のデータベースの可用性におけるJavaのシェア優れたシャープなレッスン最も重要な品質の一つであると述べました。ユーザーがその仕事で優れた性能という、彼らは必要な情報と洞察へのアクセス権を持っていることを確認する必要があります。
しかし、あなたは簡単な作業を必要とするとき、データベースが利用可能であるが、それを行うことが容易であることを確認してください。用語「高可用性」が発生しない、システム故障、システムは、平均時間より長い時間の長さの連続動作を意味します。
RedisのRedisのセンチネルは、高可用性ソリューションであり、Redisのキーが非リレーショナル・データベースとして使用することができる、オープンのメモリに格納されたデータ構造です。Redisのセンチネルの目標は、3つの異なる機能Redisのインスタンスによって管理される:モニター、あなたの新しいマスターノードを作成することにより、自動的にフェイルオーバープロセスのハンドルを問題が発生したときRedisの展開、送信通知を、と。
分散システムとして、 Redisのセンチネルセンチネルは、他のプロセスと連携して実行するように設計されています。プライマリノードに障害が発生したときに検出された偽陽性の可能性を低減し、システムはさらに、単一のプロセスの任意の故障を接種しました。
Redisのセンチネルクリエイターはお勧めあなたは少なくとも三つの持つ信頼性の高いセンチネルの展開のために、センチネルインスタンスを。これらの実施例は、互いに独立しなければならない、異なる地理的領域に位置するコンピュータとして、コンピュータの故障の間に分散されてもよいです。
実行方法 Redisのセンチネルを
ランのRedis-センチネルやRedisのサーバー:RedisのSentinelは、次の2つの実行可能ファイルのいずれかが必要になります。
使用 Redisの-センチネル実行ファイル、あなたは、次のコマンドを実行することができます Redisのセンチネルを:
1つのRedis-センチネル/path/to/sentinel.conf
どこで「/path/to/sentinel.confは、」パスセンチネルの設定ファイルです。
Redisサーバの実行可能ファイルを、あなたは、次のコマンドを実行することができます Redisのセンチネルを:
1つのRedisサーバ/path/to/sentinel.conf --sentinel
どちらの場合も、あなたがリンクを提供しなければならないことに注意してくださいセンチネルプロファイルリンクを。あなたはRedisのセンチネルを実行しているときにシステムの再起動時にシステムの現在の状態を保存するためには、コンフィギュレーション・ファイルを使用する必要があります。
Redisのセンチネルプロファイルの例を以下に示します。
1つのセンチネルモニタmymasterは127.0.0.1 6379 2 2 3センチネルダウン後のミリ秒mymaster 60000 4 5センチネルフェイルオーバタイムアウトmymaster 180000 6 7センチネル並列同期mymaster 1 8 9センチネルモニタresque 192.168.1.3 6380 4 10 11センチネルダウン後ミリ秒resque 10000 12 13センチネルフェイルオーバタイムアウトresque 180000 14 15センチネル並列同期は5 resque
この例では、ラインプライマリノードの``センチネルモニター<主なグループ名> <IP> <ポート> <仲裁>「」与えられたIPアドレスとポートに定義された番号は、マスタグループ名センチネルと呼ばれます。法的引数は数センチネル・プロセスは、マスターノードがアクセス不能であるという事実について合意に達する必要があります。
他の行は、以下の設定を定義します。
「ダウンミリ秒後」:ミリ秒数としてプライマリノードの定義に到達後の経過しました。
「センチネルフェイルオーバータイムアウト」:定義センチネルプロセスは、マスターノードを投票時間をかけて失敗しようとします。
「センチネルパラレル同期」の定義は、同時に同一のマスターノードを使用して、ノードの数からフェールオーバー後に再構成することができます。
では JavaのRedisのセンチネルへの接続
以下のために Javaプログラマ、悪いニュースはRedisのセンチネルは、Javaと互換性があることです。しかし、良いニュースはRedissonが簡単に、一緒に馴染みのJavaプログラミング言語構造の多くを使用していますRedisson JavaクライアントRedisのを、仕事に使用することができるようRedisのセンチネルとJavaはそのようなフレームワークということです。Redissonは、分散的にJavaオブジェクトの数十を提供ロックおよびサービスの集合、ユーザーが別のアプリケーションとサーバの間でそれらを共有することができます。
次のコード例ではする方法を示しでRedisのセンチネルJavaを使用して開始します。設定ファイルとRedissonクライアントを設定した後、アプリケーションは、JavaでのRedisの利用の実現可能性を実証するための基本的な操作を実行します。
1つの パッケージredis.demo。 2 3 インポートorg.redisson.Redisson。 4 5 インポートorg.redisson.api.RBucket。 6 7 インポートorg.redisson.api.RedissonClient。 8 9 / ** 10 11 * RedisのセンチネルのJava例 12 13 * 14 15 * / 16 17 パブリック クラスアプリケーション 18 19 { 20 21 公共 静的 ボイドメイン(文字列[]引数) 22 23 { 24 25 コンフィグ設定= 新しい構成(); 26 27 config.useSentinelServers() 28 29 .addSentinelAddress( "Redisの://127.0.0.1:6379" ) 30 31 .setMasterName( "myMaster" )。 32 33 RedissonClient redisson = Redisson.create(設定)。 34 35 //は動作を行う 36の 37 // 実装java.util.concurrent.ConcurrentMap 38 39 RMAP <文字列、文字列>地図= redisson.getMap( "simpleMap" )。 40 41 map.put(「mapKey」、「これは、マップ値です」)。 42 43 文字mapValue = map.get( "mapKey" )。 44 45 のSystem.out.println( "格納されたマップ値:" + mapValue)。 46の 47 // 実装java.util.concurrent.locks.Lock 48 49 RLOCKロック= redisson.getLock( "simpleLock" )。 50 51 lock.lock()。 52 53 試し{ 54 55 //はないいくつかのアクション 56 57 } 最後に{ 58 59 施錠開錠(); 60 61 } 62 63 redisson.shutdown(); 64 65 } 66 67 }
概要
ノートに必ず、 Redissonユーザーは、少なくとも一つのRedisのセンチネルRedisのサーバと少なくとも一つのマスターノードを指定する必要があります。開始後、Redissonリストとノードを監視し続け、Redisのセンチネルセンチネルのマスタノードが使用可能なノード。Redissonだけでは、このタスクを完了し、ユーザーがフェールオーバーの状況を処理することができますRedisのトポロジの状態を監視する必要がないことを、この手段。