1. はじめにRedis はエンタープライズ レベルの開発では非常に一般的ですが、単一の Redis では安定した使用を保証できないため、クラスターを構築する必要があります。
1 つ目は、今回構築する高可用性のセンチネルです。メインの Redis がハングアップした場合、Sentinel はフェイルオーバーに投票します。 2 つ目はシャード クラスターです。 Sentinel の欠点の 1 つは、マスター ノードが 1 つしか存在できず、書き込み効率が低すぎることです。シャード化されたクラスターはセンチネル問題を解決し、水平方向に拡張して Redis のパフォーマンスを向上させることができます。 センチネルの最小数は 3 で、奇数の場合は増加します。シャード クラスターの最小構成は、マスター 3 つとスレーブ 3 つです。今回は仮想マシンを使用して構築しました。編集者がそれを構築するのに1週間かかりました。マスターとスレーブには問題はありませんでしたが、フェイルオーバーは機能しませんでした。根本的な原因は、Docker ネットワークの問題でした。 Redis と Sentinel は同じネットワーク セグメントにありませんでした。多くのチュートリアルではホストが使用されていますが、現在正常に起動できないかどうかはわかりません。そのため、ネットワーク内にある必要があります。 これは主に体験であり、知識ベースの質問が多すぎるため、公式 Web サイトにアクセスして確認できます。
2. dockerとdocker composeのインストールdocker と docker compose のインストールと使い方 [最新バージョン] 3. Redisマスタースレーブを起動する1. redis-sentinel-testフォルダを作成するmkdir redis -センチネル-テスト 2. その中に2つのフォルダを作成するcd redis -センチネル-テスト/ 3. RedisでComposeファイルを作成するdocker-compose.yml にちなんで名前を付ける必要があります。このテストでは、redis はディレクトリをホストにマウントしません。必要に応じて、ボリュームを使用してホストにマウントすることもできます。 vim docker - compose 。 yml 4. 作成ファイルを編集するテストの便宜上、ここではパスワードは設定されていません。 protected-mode no: 無効にすると、他の場所から接続を使用できます。 slave-announce-ip: ホストマシンの IP を使用します。 バージョン: "4.1" 5. Redisマスタースレーブを起動するCompose が更新され、開始文字が - からスペースに変更されました。 docker -作成-d 6. 重要な注意事項起動すると、docker compose によってフォルダー名 + _default という名前のネットワークが自動的に作成されます。 dockerネットワークls 7. マスタースレーブステータスを確認するメインの redis を入力します。 e77 はコンテナ ID です: docker exec -it e77 / bin / bash ステータス情報を表示します: 情報 8. マスターとスレーブをテストする4. 3人のセンチネルを起動する1. センチネルフォルダに切り替えるCD .. 2. sentinel.confファイルを作成する公式ウェブサイトにアクセスして、最小限の構成ファイルを見つけましょう。
これらは 2 つのインスタンスですが、必要なのは 1 つだけなので、最初の 4 行だけが必要です。 保護モードなし 最初の行: Redis は、自由に書き込むことができる mymaster という名前の Redis クラスターを監視します。以下は IP アドレスです。これはホスト マシンの IP アドレスにすることができ、ポートはマスター Redis のポートになります。 2はセンチネルの投票数です。マスター Redis がダウンすると、3 つの Sentinel のうち 2 つによって投票される Redis がマスターになります。 ! sentinel1.conf ファイルを作成し、上記の 4 行を貼り付けます。 vimセンチネル1 。会議 変更せずに 2 つのコピーを作成します。 センチネル1をcpします。 conf sentinel2 。会議 3. コンポーズファイルを書き込むバージョン: "4.2" ネットワーク: これは上で述べたことと一致します。フェイルオーバーを完了するには、Sentinel と Redis が同じネットワーク内にある必要があります。 4. ファイルツリーを表示する木 そうでない場合は、インストールできます: yum -y ツリーをインストール 5. Sentinelを起動するdocker-compose を起動 -d 6. センチネル情報を表示するセンチネル コンテナに入ります: docker exec -it c8 /bin/bash Sentinel に接続: redis - cli - p 26379 ==マスター 1 名、スレーブ 2 名、センチネル 3 名が完成== 7. フェイルオーバーテストマスターを停止します: ドッカー停止e77 8. フェイルオーバーログdocker -ログを作成-f 9. センチネルのステータスを確認するこの時点で、マスターノードは自動的にポート 6381 に切り替わります。 10. `6379` サービスを再起動するdocker を再起動 e77 新しく追加された 6379 がスレーブ ノードとしてマスター ノードに参加することがわかりました。 5. SpringBootを統合する1. 依存関係をインポートするエディターの Springboot バージョンは 2.3.7.RELEASE です。 <依存関係> 2. yml設定サーバー: 3. JSONシリアル化構成/** 4. 新しいコントローラーテストを作成する/** 5. プロジェクト構造6. テスト7. Redisに値があるかどうかを確認するVI.結論編集者は1週間の作業を経て、ついにそれを完成させました。一番の問題はネットワークの問題でしたが、ついに解決しました! !私はたくさんのビデオやチュートリアルを見てきましたが、その中にはあまりにも漠然としたものもあったので、後から来る人たちの役に立てればと思い、ピットフリーバージョンを 1 日かけて作成しました。 ! |
<<: G-Bank のクラウドネイティブ ビジネス レジリエンスの探求と実践
>>: 2023 年のマルチクラウドに関する 4 つの重要な考慮事項
ウェブマスター業界は今、活況を呈しています。20代の若者でも、40代の中年男性でも、誰もがインターネ...
3月26日、Techcrunchは本日、フラッシュセールサイトOne Kings Laneの開発経緯...
最適化には時間がかかりすぎるため、多くの友人が今では希望を失っていると思います。また、友人の上司やマ...
アイデンティティ管理に関しては、企業は常に多くの問題を抱えています。従業員が複数のアカウントとパスワ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています2018年...
皆さんと共有した前回のオンサイト記事に続いて、私は過去数日間自分の考えを整理し、次のオフサイト記事を...
少し前、テンセントがJD.comに投資したというニュースが業界関係者の間で話題になった。しかし、この...
alphavps は、AMD Ryzen 7000 シリーズ + NVMe をベースに構築された V...
タオバオで働いている友人の多くは、ウェブサイトや店舗を宣伝する方法を尋ねると、いつも同じことを言いま...
クラウド コンピューティングは成長を続けており、中小企業に多くの機能を提供しています。クラウド コン...
dotster、このアメリカの古いコンソールブランドは、すべてのコンソールの25%オフプロモーション...
1. 由来:安全容器の命名Phil Karlton は、「コンピューター サイエンスにおいて本当に難...
近年のクラウドコンピューティング、エッジコンピューティング、人工知能などの技術の発展を振り返ると、ク...
■ 江東氏(中央)と彼の仲間たちクラスメイトが寮にこもって外出をせず、それでも食べ物を注文したい場合...
仕事の休憩中によく考えるのは、「アプリのプロモーションって難しいの?」ということ。実際、長い間やって...