問題タブ [high-availability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - mongodb 自動フェイルオーバー / aws での高可用性
aws ec2 で mongodb の適切なフェイルオーバー メカニズムが必要です。フェイルオーバーはレプリカセットによって達成できることは知っていますが、新しいmongoがインストールされたubuntu-ec2 amiノードを起動し、それをレプリカセットに自動的に(手動操作なしで)再度追加し、レプリカセットを適切な状態に戻す最良の方法は何ですか? ?
EBSにはいくつかの問題がありますが、ローカルインスタンスストレージを使用すると、デッドノードのデータが失われますが、レプリカはすべてのマスターデータを取得しているので、すべてを回復するのにreplacaで十分ですか(ジャーナリング付きのmongo 1.8で)、または私はEBSのみを使用する必要がありますか?
mongo インスタンスを開始するにはどうすればよいですか? 修復オプションで開始する必要がある場合、フェイルオーバー再起動からノードの最初の実行をどのように処理できますか?
よろしく、
message-queue - セロリでメッセージ配信を保証するには?
バックグラウンドでより多くの作業を開始したいPythonアプリケーションがあり、ビジー状態になるにつれてスケーリングが向上します。過去に、通常のバックグラウンド タスクを実行するために Celery を使用しましたが、これはうまくいきました。
このアプリケーションと私が過去に行った他のアプリケーションとの唯一の違いは、これらのメッセージが処理され、失われないことを保証する必要があることです。
このアプリケーションでは、メッセージ キューの速度はあまり気にしません。何よりもまず信頼性と耐久性が必要です。安全のために、何か問題が発生した場合に備えて、両方とも異なるデータ センターに 2 つのキュー サーバーを配置し、一方を他方のバックアップとして使用したいと考えています。
Celery を見ると、さまざまなバックエンドをサポートしているように見えます。一部のバックエンドは他のバックエンドよりも多くの機能を備えています。最も人気のある 2 つは redis と RabbitMQ のように見えるので、時間をかけてさらに調べてみました。
RabbitMQ: 永続的なキューとクラスタリングをサポートしますが、現在のクラスタリングの方法の問題は、クラスター内のノードを失うと、そのノードをオンラインに戻すまで、そのノード内のすべてのメッセージを利用できないことです。クラスター内の異なるノード間でメッセージをレプリケートするのではなく、メッセージに関するメタデータをレプリケートするだけで、元のノードに戻ってメッセージを取得します。ノードが実行されていない場合は、SOL Not理想。
これを回避するために彼らが推奨する方法は、2 番目のサーバーをセットアップし、DRBD を使用してファイル システムを複製し、Pacemaker のようなものを実行して、必要に応じてクライアントをバックアップ サーバーに切り替えることです。これはかなり複雑に思えますが、より良い方法があるかどうかはわかりません。誰かがより良い方法を知っていますか?
Redis: 読み取りスレーブをサポートしているため、緊急時にバックアップを作成できますが、マスターとマスターのセットアップはサポートされておらず、マスターとスレーブ間のアクティブなフェイルオーバーを処理するかどうかはわかりません。RabbitMQ と同じ機能はありませんが、セットアップと保守がはるかに簡単に見えます。
質問:
メッセージ処理を保証するようにセロリをセットアップする最良の方法は何ですか?
誰もこれを以前にやったことがありますか?もしそうなら、あなたがしたことを共有していただけませんか?
cluster-computing - 高可用性 Linux アプリケーションの設計レベル パターン
Linux-HA のようなツールキットと、その上にあるCorosyncのようなクラスター レイヤーがあるとします。DRBDなどのファイル システム レプリケータやその他のさまざまな要素があり、開発者が可用性の高い堅牢なシステムを構築するために利用できるコンポーネントがあります。
多くの場合、高可用性アーキテクチャ レベルのパターンはかなり簡単に記述できますが、それよりも下のレベルを探しています。
これらのツールキットの各部分はかなり詳細に文書化されているようで、堅牢なアプリケーションでの使用方法を示しているものもありますが、エンドツーエンドまたはマルチリソースを使用するアプリケーションの例は示されていません。
では、開発されたコードがこのような環境で適切に機能するために従うべき具体的な手順、パターン、レシピなどは何でしょうか?
動作中のシングルボックスのカスタム TCP サーバー (たとえば) をリファクタリングし、それをクラスター制御下で実行し、共有ファイル システム スペースに書き込み、作業するために、どの書籍、Web チュートリアルなどをチームに紹介する必要がありますか?これにより、フェイルオーバー時に回復して機能し続けることができます。
python - エンタープライズ大規模Webベースシステム用のPython/Django?
私の会社はJavaとjsfに大きく依存しています。私が雇われてからのすべてのプロジェクトは、それらを使用して実装されています。しかし、これらのプロジェクトのほとんどは、パフォーマンスと可用性に関連する問題に直面しています。それで、ついに他の技術への移行を検討していて、私はネットで研究しようとしました、そして私はpythonを試すことに決めようとしています。しかし、始める前に、Pythonが私たちが直面しているパフォーマンスの問題を解決するだろうというあなたの答えを聞きたいと思います。
明確にするために、私たちが主に直面するパフォーマンスの問題は、Glassfishサーバーとページの読み込みに関連しています。現在、アイスフェイスを使用しており、当時はウッドストックを試してきました。さらに、一部のポリシー関連の問題に.netを使用できません。また、以前のプロジェクトで経験したセキュリティリークのため、PHPも問題外です。
したがって、上司と顧客をPythonに納得させようとする際に、パフォーマンスと可用性に関連する長所と短所を読むことを期待しています。
database-design - 24時間年中無休で実行する必要がある場合に毎日のバッチジョブを処理するための戦略
24時間年中無休の運用に移行しようとしているアプリケーションがあります。データフィードを一晩インポートして翌日の顧客の変更を更新するバッチジョブがいくつかあります。このジョブは、テーブル全体が数百万行が消去されて再構築されるように構成されています。この仕事の間、テーブルは約2時間利用できません。
十分に大きいため、更新する前にメモリにロードすることはできません。バッチジョブが終了するまで、他の方法でデータを利用できるようにするための最善のアプローチを知りたいと思いました。
テーブルをxml形式でディスクにロードしますか?バッチジョブの前にテーブルをコピーしますか?
DRスタックがありますが、そのセットアップ方法では、リアルタイムで同期を試みて同期するため、ジョブの実行中も使用できなくなると思います。
データベースはDB2、フロントエンドはIBM Websphere
java - MySQL JDBC接続のフェイルオーバー?
MySQL JDBCドライバーを使用して高可用性ソリューションを実装する方法を決定しようとしていますが、設定できるフェイルオーバープロパティがあるようです。しかし、MySQLとJDBCを使用して単純なフェイルオーバーメカニズムを実装する場合、人々は何を使用する傾向があるのでしょうか。
2台のフロントTomcatサーバーを2台のMySQLサーバーに接続することを計画しています。
jboss - JBOS AS 7 で高可用性を使用するには?
JBoss AS 7 でクラスターを開始するにはどうすればよいですか? スターを付けて使用 (デプロイなど) することはできますが、クラスターを構成するにはどうすればよいですか? 構成 HA をスタンドアロンで使用しましたが、各インスタンスは独立しています。ドメイン モードでは、HA プロファイルでグループを使用できますが、そうではないと思います。ウェビナーを見ましたが、構成が何をするのかわかりません。助けてください !:P
c# - ASP.NET C#、MS SQL Server、およびどのホスティングソリューションを備えた高可用性支払い処理サイトですか?
私たちは、共有ホスティング会社のIISとSQLServerで現在実行されている一種の支払い処理サイトを開発しています。
私たちが抱えている問題には、ウェブホスティング会社が時々故障して利用できなくなることが含まれます。先月は洪水のため数日間利用できませんでした。ネットワークに到達できない場合がありました。同じサーバー上の他の誰かが何かを実行したことがあり、それが私たちのものが正しく実行されないようにしたと言われました。
ダウンタイムは、顧客、顧客と仕事の満足度、そしてもちろんお金を犠牲にします。現時点では、スケーラビリティは問題ではありません。信頼性はです。
サーバーとネットワークを自分でホストして実行することを心配したくない場合、高い(より)可用性を実現するための最良の方法は何ですか?
動作するホスティングソリューションをどのように設定しますか?
ありがとう、
performance - バッキングデータストアが利用できない場合、キャッシュの有効期限を無効にすることはできますか/すべきですか?
私はEhcacheを使い始めたばかりですが、これまでのところかなり良いようです。データベースに対する読み取りを高速化するために単純な方法で使用していますが、データベースが短期間使用できない場合にアプリケーションを稼働させ続けるためにも使用できるかどうか疑問に思います。(更新-私のコンテキストは、データベースからのみ読み取る高可用性モジュールを備えたアプリケーションです)
データベースの読み取りに問題が発生した場合に有効期限を無効にし、読み取りが再び機能するときに再度有効にすることで、それを実行できるようです。
どう思いますか?それは合理的なアプローチですか、それとも私は何かを逃しましたか?それが公正なアプローチである場合、どのように実装するのが最善かについてのヒントは高く評価されています。
更新-ehcacheは、キャッシュを「eternal」に解除/設定するための動的に構成可能なオプションをサポートしています。これは私が必要なことをするようです。
ruby-on-rails - AWS全体でアプリケーションをスケーリングする際の単一障害点
Railsベースのアプリケーションがあり、デプロイインフラストラクチャはAWSにバインドされます。現在のスキーマには、次のレイヤーが含まれています。
- ロードバランサー(HaProxy)
- Rails-アプリケーション(EC2)x2
- MySQLdデータベース(EC2マスタースレーブ)
- Redis、DelayedJobバックグラウンドプロセス
- Wowzaメディアサーバー(EC2)
- S3アセットストレージ(共有データ)
3つのSPFがあります:ロードバランサー、データベース、メディアサーバー。
私の質問は冗長性についてですが、どうすればSPFを減らすことができますか?
- ロードバランサー。セカンダリロードバランサーをセットアップする計画がありますが、ドメイン名は同じです。その場合、 DNS A / AAAAラウンドロビンフェイルオーバーは優れたソリューションですか?AWSロードバランサーは使いやすいですか?
- MMM(Multi-Master Replication Manager)は信頼できますか?Rails(独立したホストへの読み取り/書き込み)ではどのように機能しますか?
- Wowzaメディアサーバー、使用できる有名なHAソリューションはありますか?