問題タブ [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.
sql-server-2008 - クラスターの SQL Server エイリアス?
エイリアス経由でアクセスできるように SQL クラスターをセットアップするためのちょっとしたアドバイスを探しています。
現在、私のクラスターは 'SQLCLUSTER' と呼ばれていて、それにリダイレクトするエイリアスを設定したいとします。理想的には、クラスタ内のいずれかのマシンで「(ローカル)」に接続しようとすると、「SQLCLUSTER」にリダイレクトされるようにしたいと考えています。SQL サーバー 2008 を使用しています。
これはクラスタで可能ですか?
前もって感謝します、
デイブ
erlang - ejabberd クラスタでフェイルオーバーを処理する方法に関するアドバイスはありますか?
コンテキスト:
100 のチャット ルームにまたがる 20,000 の接続されたチャット ユーザーをサポートする必要があるシステムがあります。パフォーマンス テスト中に、クラッシュ ダンプを取得する前に 1 台のボックスで最大 6,000 人の接続ユーザーを取得できることがわかったので、運用環境ではおそらく 1 つのクラスター内に 4 台のサーバーを使用します。
私の質問:
チャットルームがサーバー ノードにバインドされていることを理解しています。そのため、ノードが停止すると、チャットルームも一緒に消え、ユーザーはルームに所属しなくなります。取り残されたユーザーが複製されたルームに移動されるように、チャットルームを別のノードに「複製」する方法はありますか? そうでない場合、ユーザーの継続性を維持するために何をしますか?
java - ipvsadm LVS を使用した RabbitMQ の負荷分散とフェイルオーバー
前に Linux LVS (ipvsadm) によって負荷分散された 2 つの rabbitmq ノードを使用するプラットフォームがあります。永続的な接続とハートビートを備えたクライアントで構成された ipvsadm があります。ここまでは順調ですね。
展開後、通常、クライアントの半分が最初のノードに接続され、残りの半分が 2 番目のノードに接続されます。1 つのノード (rabbitmqctl stop_app および start_app) を停止しようとしました。クライアントはrabbitmqクラスターに再接続しており、LVSは接続をノードアップに送信しています。したがって、すべてのクライアントが 2 番目のノードに接続されます。
2 つの質問があります。
1) 最初のノードが起動したとき、2 つのノード上のクライアントを再接続するにはどうすればよいですか (負荷分散) ?
2) すべてのクライアントが 1 つのノードに接続されている場合、問題はありますか?
アンサーありがとうございます。
jboss - JBoss Application Server のフェイルオーバー
JBoss ESB 4.9 を実行している JBoss アプリケーション サーバー (5.1) のフェイルオーバーに関して質問があります。図から始めます。
レガシ トランスポート (「レガシ トランスポート」) でデータを生成するレガシ アプリケーション (「レガシ プロデューサー」) があります。従来のトランスポートをリッスンし、受信したメッセージを ESB に置く ESB サービス (「ゲートウェイ」) を作成しました。その後、メッセージはいくつかのオーケストレーション手順に従って処理されます。
これは、実行中の 1 つのアプリケーション サーバーで正しく機能します。ただし、アプリケーション サーバーの障害は許容したいと考えています。したがって、単純な解決策は、クラスタ化された構成で、このようなアプリケーション サーバーを 2 つ (図に示すように) 立ち上げることです。ただし、これによりゲートウェイ サービスが複製されるため、各メッセージの 2 つのコピーが ESB でパブリッシュされて処理されることになり、望ましくない結果になります。
このタイプのフェイルオーバーを実装する正しい方法は何ですか?
sql-server - SQLServerフェールオーバークラスター-アクティブノードを特定します
SQL Serverフェールオーバークラスター内のどのノードがアクティブノードであるかをプログラムで判断する方法はありますか?または、少なくとも現在のマシンがアクティブノードであるかどうかを判断しますか?
フェールオーバークラスター内の両方の物理ノードで実行されるWindowsプログラムがありますが、アクティブノードで実行されているかどうかによって動作が異なるはずです。その理由の一部は、このプログラムが非アクティブノードとアクティブノードで同時に実行されるべきではないということです。
(プログラムクラスターを認識させることについて少し読んだことがありますが、この単純なシナリオではそれは非常にやり過ぎのようです。)
java - 失敗テストのためにIPへの発信接続をブロックしますか?
Windows Server2003でColdfusion9を使用しています。CFLDAPを介してLDAPおよびJavaを介してLDAPSと対話する一部のコードで「フェイルオーバー」をテストしています(パスワードの変更用)。
基本的に、LDAPサーバーIPSのリストを用意し、接続障害が発生したときに新しいサーバーに切り替える必要があります。
OSレベルからIPへのアウトバウンド接続をブロックして、実際にネットワークから切断したりシャットダウンしたりせずにLDAPサーバーの停止を模倣する簡単な方法はありますか?
java - 複数のDNS結果に基づくJava発信TCP接続フェイルオーバー
を使用して接続しnew Socket("unit.domain.com", 100)
、unit.domain.com
DNSレコードのAレコードに複数のIPアドレスがある場合。接続に失敗した場合、Javaはブラウザのようにリスト内の他のアドレスの1つに自動的に接続しますか?またはそれを手動で実装する必要がありますか?
ruby - エラー時にRVMは別のRubyインスタンスに「フェイルオーバー」しますか?
複数のバージョンの Ruby を使用しているように見える Rake タスクがあるという奇妙な問題があります。1つ失敗すると、別のものを試すようです。
詳細
- 10.6.5 を実行している MacBook
- rvm1.1.0
- Ruby: 1.8.7-p302、ree-1.8.7-2010.02、ruby-1.9.2-p0
- レーキ 0.8.7
ジェム 1.3.7
Veewee (Opcode.com、Vagrant、Chef を使用した仮想マシンのプロビジョニング)
エラーの具体的な詳細は完全にはわかりませんが、Veewee 自体に問題がある可能性があるためです。だから、私がやろうとしているのは、veewee の定義に基づいて新しいボックスを構築することです。このコマンドは、メソッドが見つからないというエラーで失敗しますが、興味深いのは、どのように失敗するかです。
エラー
RVM で Ruby を 1 つだけインストールすると、失敗することがわかりました。複数の Ruby をインストールしている場合、同じ場所で失敗しますが、実行は別のインタープリターで続行されるようです。
以下は、2 つの異なるクリップされたコンソール出力です。私はサイズのためにそれらを切り取った。各エラーの完全な出力は、 gist として入手できます。
1 つの Ruby バージョンがインストールされている
これは、RVM で利用できる Ruby のバージョンが 1 つしかない (1.8.7) 場合に実行するコマンドです。
複数の Ruby バージョン
以下は、RVM で利用可能な 3 つのバージョンの Ruby で同じコマンドを実行したものです。これを行う前は、「rvm use 1.8.7」を使用していました。繰り返しますが、特定のエラーの詳細がどれほど重要かはわかりません。私にとって興味深いのは、3 つの別個のエラーがあり、それぞれに独自のスタック トレースがあり、それぞれが異なる Ruby インタープリターにあるということです。各スタックトレースの下部を見ると、それらはすべて異なるインタープリターの場所から供給されていることがわかります。最初は ree-1.8.7、次に ruby-1.8.7、次に ruby-1.9.2 です。
実行が停止するのは、最後にインストールされた Ruby のバージョンに到達するまでではありません。
討論
ここで何が起こっているのか誰にも分かりませんか?この「フェイルオーバー」のような動作を見たことがありますか? 最初の例外で 1 つのインタープリターのように実行が停止しないのは奇妙に思えますが、RVM をインストールすると、Ruby 開発者が考慮していないことが起こるのではないかと思います。
.net - アクティブ/パッシブ フェールオーバー クラスタリング用の .NET ライブラリ
いくつかの入力ソースに接続し、読み取ったメッセージを処理するアプリケーションを開発したいと考えています (原則として BizTalk を考えますが、それほど重くはありません)。パフォーマンスと信頼性のために、共有ストレージ (DB など) をメッセージ キューイング メカニズムとして利用することで、サービスの水平方向のスケーリングを可能にしたいと考えています。
ただし、電子メールやディスク フォルダーなどのリソースにアクセスするスレッドは、水平方向にスケーリングできません。その入力ソースから読み取るインスタンスは、一度に 1 つだけ実行する必要があります。(さらにメッセージ処理ビジネス ロジックは、もちろん複数のノードに存在できます)。
これは、アクティブ/パッシブ クラスタリングの最適な候補です。1 つのノードは「アクティブ」と見なされ、「単一インスタンス」リソース (電子メールの受信トレイなど) にアクティブに接続しますが、他のノードは「パッシブ」です。「アクティブ」ノードが停止すると、他の「パッシブ」ノードが新しい「アクティブ」ノードを選択します。
ここで質問です。通常のフェールオーバー クラスタリング ロジックを実装するのに役立つ .NET ライブラリはどこかにありますか? (つまり、必要なハートビートの送信/検出、および「アクティブな」ノード選択プロセスの実装)。車輪を再発明したくないので。
すでに行われた調査からわかること:
- BizTalk Server はこの機能をネイティブでサポートしていますが、BizTalk は重くて高価なので使用していません (ただし、この機能をエミュレートしたい)。
- Windows Server は (Windows Server 2008 Enterprise や Datacenter などの特定のハイエンド バージョンで) フェールオーバー クラスタリングをサポートしていますが、これも高価なソリューションです (各ノードに高価なライセンスが必要になるため)。
- フェイルオーバーアルゴリズムがどのように機能するかについては多くの情報がありますが、オープンソースの実装はどこにも見当たりません... (プレミアムで販売されている商用製品のみ)
それが高度で望ましい機能と見なされる可能性があること、およびそのための商用ソリューションが高価である理由を理解しています. これで問題ありません。オープンソースの実装やライブラリが存在しない場合は、自分で開発します。すでに存在するものに労力を費やしたくないだけです。
UPDATE 12/02/2011: SAForum ( http://www.saforum.org/link/linkshow.asp?link_id=214720 ) を見つけました。これは、サービス可用性の概念を開発するためのオープン仕様を公開する Web サイトです。OpenSAF ( http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm ) と、SAForum の仕様のオープンソース C++ 実装もあります。包括的に見えますが、非常に重いです。仕様とドキュメントを読み進めるには、かなりの時間がかかります。また、フェールオーバーだけでなく、完全にスケーラブルな分散システム (通知、分散イベント、ロック、クラスター管理など) の仕様を提供することもカバーしています。.NET 実装の兆候はまだどこにもありません。
sql-server-2005 - 単純な SQL フェイルオーバー計画ですか? ログ配布?ミラーリング?
物理的な Prod DB サーバー (SQL05) があり、現在は VM DB サーバーです。アイデアは、物理マシンがダウンした場合、ルーターを (NAT 経由で) VM マシンに再ポイントするというものです。VM DB を基本的に最新の状態に保つために、ログ配布を使用することを考えています。
- これは正しい方法ですか?
- おそらくミラーリングなど、別の方法で見る必要がありますか?
- VM DB を常に使用可能な状態にしたい (そのため、ミラーリングが妨げられていると思います)
任意の (良い) 提案が要求されました! :)