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 つの重要な考慮事項
Xiaomaowan トライアルポイントウォールセルフサービス配信システム: e.xiaomaow...
v.ps は最近、オランダのデータセンターに定期的な国際回線を備えた Nano シリーズという新しい...
「オープン性と統合による勝利」円卓フォーラム(写真はテンセントテクノロジー提供)テンセントテクノロジ...
myserverplanet はホスト キャットに一度だけ登場しましたが、それはつい最近のことでした...
UK2 グループ傘下の老舗ホスティング会社 Midphase.com (1998 年設立) は、すべ...
大多数のネットユーザーの要望に応えて、dwidc(大王IDC)はダブルイレブン特別プロモーションを1...
絶えず変化するビジネスの世界では、不確実性が当たり前になっています。企業が熾烈な市場競争の中で確固た...
新年まで残り1日。今年のホットワードから今年のマーケティングイベントまで、年末を振り返る記事がネット...
本日の焦点は、2017年春のレポートです。 2016年末のレポートで、QM氏はモバイルインターネット...
インターネットの急速な発展により、ブログはオンライン マーケティングにおいてもはや目新しいものではな...
6月19日に開催された第1回ServerlessDays Chinaカンファレンスで、Tencent...
cheapwindowsvps は SSDVPS.com のものです。同社は現在 Windows V...
地球上のどこで石を拾っても鉄を見つけることができます。しかし、鉄鉱石が世界中どこにでもあると言うのは...
SEO に詳しい人は、外部リンクがランキングに影響を与える重要な要素であり、最も重要な要素である可能...
2003 年に設立されたこの古いホスティング会社 a2hosting は、私たちに驚きをもたらしまし...