問題タブ [failover]
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.
google-app-engine - アプリ エンジンのダウンタイム
Google アプリ エンジンには、データストアを読み取り専用モードにするかなりの量のダウンタイムがあるように見えることに気付きました。多くの場合、このダウンタイムは日中にあります。これは開発の初期段階でのみ発生するものですか、それとも常に発生すると予想できるものですか?
中小企業が業務を処理するのに役立つアプリケーションを開発しています。それが行うことの1つは予約を取ることであり、もう1つは電話のルーティングです。データストアが読み取り専用の場合の処理方法について、次のような提案をお願いします。
- クライアントが顧客と電話で予約を取り、データストアが読み取り専用になっている場合はどうなるでしょうか? 特に日中の場合は、保存するために後で戻ってくるようクライアントに依頼することは受け入れられません。
- 着信コールがあり、データベースの書き込みが利用できないために、アプリケーションがレコードを保存したり、コールを適切にルーティングしたりできない場合はどうなりますか?
この種の問題は通常どのように処理されますか?
nosql - redis:フェイルオーバーの処理?
Redis は、組み込みのレプリケーションと驚異的な速度を備えた優れた製品のようです。試してみると、2010 年の memcached の置き換えのように感じられます。
ただし、通常 memcached を使用する場合は、プール内のサーバー間でデータを均等に分散するために一貫したハッシュが使用されます。プール内のサーバーの 1 つがダウンしてアクセスできなくなった場合、それは透過的に処理され、失われたキーのみが再作成され、プール内の残りの使用可能なサーバーに均等に分散されます。
一方、Redis には組み込みのシャーディングもありますが、自動レプリケーションと呼ばれる別の非常に興味深い機能もあります。そのおかげで、たわごとがファンに当たった場合に使用するスレーブサーバーを利用しながら、データの可用性を大幅に高めることができました.
ただし、 redis サーバーのステータスをスレーブとして変更して自動的に新しいマスターにするか、Redis でフェールオーバーを自動的に処理する他の方法で処理する良い解決策をまだ見つけていません。
これはどのように行うことができますか?これに対する適切なアプローチは何でしょうか?
php - 「ホストに接続できませんでした」のphp curlフェイルオーバー機能
さまざまな Web サイトをクロールする php curl スクリプトがあります。問題は、しばらくすると、ウェブサイトが私の IP に一種の一時的な禁止を課し、スクリプトがホストに接続できなくなることです (「ホストに接続できませんでした」というエラーが発生するため)。スクリプトをしばらく停止させる条件/関数を設定したい (例: sleep(30)) が、cURL がホストに接続できない場合の検出 (エラー処理) の方法がわかりません。
sql-server - SQL Server ミラーリングと自動フェールオーバーを使用している場合、MSDTC がサポートされないのはなぜですか?
SQL Server ミラーリングをサポートしたいアプリケーションがあります。ただし、アーキテクチャは現在、複数の WCF サービスと DB 接続が 1 つの MSDTC トランザクションに参加するようなものであり、ミラーリングを使用する場合、Microsoft は MSDTC がサポートされていないと述べています。
彼らの説明はあまり有益ではありません:
MS DTC トランザクションでデータベース ミラーリングを使用すると、同様のシナリオが発生する可能性があります。たとえば、新しいプリンシパル サーバーは、フェールオーバー後に MS DTC に接続します。ただし、MS DTC は新しいプリンシパル サーバーを認識しません。したがって、MS DTC は、トランザクションが他のデータベースでコミットされたと見なされる場合でも、"コミットの準備" フェーズにあるすべてのトランザクションを停止します。
私が理解に問題を抱えているのは、最後の文です。これは、DB サーバーがミラーリングされておらず、同じ時点で停止した場合とどう違うのでしょうか? 誰かが私にそれを説明できますか?これを組織内の他のユーザー (および顧客) に説明できるようにする必要がありますが、MSDTC が 1 つのシナリオで適切にロールバック/補正できる理由がわかりませんが、参加者の 1 つがミラーリングされた SQL サーバーである場合はできません。 (フルセーフティモード)。
failover - RabbitMQ キューをフェイルオーバーするには?
RabbitMQ はデフォルトでクラスタリングをサポートしていますが、キューは複製されず、キューが作成されたノードにバインドされます。アクティブなサーバーがダウンするのを待っているだけのサーバー全体を予約するのはリソースの浪費のように思えるため、彼らが文書化した DRBD ソリューション以外に、RabbitMQ を高可用性にする方法を探しています。
キューが 2 つある設定を考えています。メッセージがパブリッシュされたら、RabbitMQ クラスターがメッセージを 2 つのキューのいずれかに送信するようにします。パブリッシャーがダウンしているキューにパブリッシュしようとするとエラーが発生し、パブリッシャーが他のキューで再試行できることはわかっていますが、これをクラスター レベルで自動的に実行できるかどうか疑問に思っています。それを処理するためにクライアント コードを記述する必要はありません。これはできますか?
nosql - noSQLの選択-可用性を優先
次のプロジェクトでnoSQLデータベースを実行することについて少し考えました。ただし、可能な限り最高の可用性を提供し、これを提供するための最高の組み込みレプリケーション機能を備えたプラットフォームがどれであるかはわかりませんが、頭痛の種は最小限に抑えられます。
現在、カサンドラが最高の候補者として登場していますが、この分野でより多くの経験を積んだ人から、これについてもっと知りたいと思います。
どうもありがとう!
php - 利用可能なWebアプリケーションを構築する方法
高可用性が最優先されるWebアプリケーションを構築しようとしているとしましょう。私たちの顧客は企業であるため、ダウンタイムは関係者全員の収益の損失に相当します。
要約すると、みんなを幸せに保つために、私たちは常にオンラインである必要があります。それで、非常に基本的な観点から、これを行うためにどのような技術を検討する必要がありますか?
PHPを使用して開発速度を高速化すること以外に、ほとんど好みはありません。そのため、データストレージの新しいプラットフォームと、それを実現するために他に何があるかについて、完全にオープンです。
あなたの答えは非常にありがたいです!どうもありがとう!
replication - VMware ESXi のフェイルオーバーを実行する無料のソリューションを知っている人はいますか?
VMware ESXi のフェイルオーバーを実行する無料/カスタム ソリューションをセットアップしたいと考えています。
セットアップは次のとおりです。
それぞれが独立したストレージを備えた 2 台の物理サーバー。各物理サーバーには、2 台の Win2k8 Enterprise サーバーがあります。
物理サーバーが完全に故障した場合、もう一方 (便宜上、スレーブの役割を割り当てることができます) で操作を再開します。
そのためには、何らかの方法で仮想サーバーの連続レプリケーションを行い、プライマリ サーバーに障害が発生した場合に IP を引き継いで仮想マシンを起動し、運用を継続する必要があります。
私自身、VMware ESXi は初めてですが、フェイルオーバーのための高価な VMware ライセンスに代わるソリューションを研究しようとしています。
ありがとう。
nservicebus - NServiceBus または MassTransit を使用したサービス バスのフェールオーバー シナリオ
Microsoft のhttp://login.live.comのような Identity サーバーを構築する必要があります。
フェイルオーバーを処理するために、複数の Web サーバー ノードを用意します。計画では、すべてのデータベース書き込み操作は、データベース サーバーにメッセージを送信することによって行われます。データベースはミラー化または複製されます。データベースは書き込み操作をサブスクライブしますが、他のノードもサブスクライブするという考え方です。そうすれば、他のノードはデータベースから読み取る必要がなく、キャッシュを更新できます。
サービス バス アーキテクチャを学び始めたばかりで、サービス バスのフェールオーバー シナリオを処理する方法が明確ではありません。
質問:
- データベース サーバーが利用できない場合、発行されたメッセージはどうなりますか?
- それらはどこに、どこに保管されますか?
- サービス バスのフェールオーバーを処理するには、追加のマシンまたはクラスターが必要ですか?
- SQL Server をメッセージ ストアとして使用できると読みましたが、永続的な MSMQ を使用できますか? メッセージをデータベースに書き込むことができるようにメッセージをキューに入れているのに、最初にメッセージを取得して再度書き込むために、最初にデータベースに保存する必要があるのはなぜですか? または、これは間違っています。DB はサブスクリプションのリストにのみ使用され、メッセージには使用されませんか?
c# - 実行時にSQLServerモードでsessionStateのsqlConnectionStringを変更する方法は?
実行時に sessionState の sqlConnectionString (SQLServer モード) を変更する方法を見つけようとしています。SQL サーバーのフェールオーバーを実装しており、sessionState が SQL サーバーへのアクセスに失敗したことをキャッチし、セカンダリ サーバーにフェールオーバーするように指示し、同時にサイト全体のフェールオーバーを初期化する必要があります。
よくわからない場合は、お気軽に詳細をお尋ねください。(ところで、私たちはC#を使用しています)
編集:念のため、sessionState について話しているのですが、通常の SQL サーバー接続ではありません。
私の現在のweb.configは次のように構築されています:
お役に立てれば。