問題タブ [failovercluster]
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.
msmq - フェールオーバー クラスターで MSMQ サービスを使用できない
サービスをクラスター化したいのですが、サービスが msmq サービスを使用するため、msmq サービスもクラスター化する必要があります。クラスターを正常に作成し、サービスと msmq サービスの両方をクラスターのリソースとして追加すると、両方ともオンラインになります。次に、問題が発生します。私のサービスは、msmq サービスが利用できないと言いました。
msmq サービスをクラスタリングするためのヒントがいくつかあります。たとえば、私のサービスでは「コンピューター名のユーザー ネットワーク名」オプションをチェックする必要がある、ローカル マシン上の msmq サービスはローカル システム アカウントとして実行する必要がある、などです。これらすべてのヒントに従いましたが、まだ msmq サービスを利用できません。
誰でもこのような経験がありますか?よろしくお願いします。
.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 実装の兆候はまだどこにもありません。
dns - MSFC「クラスター名がオンラインではありません」
私のラボには、非生産的なdnsサーバーを備えたMicrosoft2008フェールオーバークラスターがあります。残念ながら、hddがクラッシュし、クラスターをバックアップから回復しました。
しかし、クラスターマネージャーでは、クラスター名がオンラインではないというメッセージが常に表示されます。
イベントビューアには、エラーod 1207のエントリが5つあります。すべてを試し、許可を与えます。ただし、多くの再起動後の問題は解決しません。
それで、DNSエントリを修復したり、DNSエントリを削除したりして、クラスタがエントリを最初から作成できるようにする方法はありますか?
このBRフランクを読んでいただきありがとうございます
java - ActiveMQ:一時キューを使用しながらブローカーフェイルオーバーを処理する方法
私のJMSアプリケーションでは、プロデューサーの一時キューを使用して、コンシューマーアプリケーションからの応答を受信できるようにしています。
このスレッドで言及されているのとまったく同じ問題に直面しています:http://activemq.2283324.n4.nabble.com/jira-Created-AMQ-3336-Temporary-Destination-errors-on-HA-failover-in -broker-network-with-Failover-tt-td3551034.html#a3612738
ネットワークで任意のブローカーを再起動すると、一時キューに応答を送信しようとしたときに、コンシューマーアプリケーションログに次のような多くのエラーが表示されていました。
それから私はそこでゲイリーの応答が使用を提案しているのを見ました
クライアントのurlパラメータとしてbrokerURL
。この追加パラメーターを使用して、クライアントブローカーのURLをすぐに変更しました。ただし、このフェイルオーバーテストのためにネットワークでブローカーを再起動すると、次のようなエラーが発生します。
ActiveMQ5.5バージョンを使用しています。そして、私のクライアントブローカーのURLは次のようになります。
さらに、4つのブローカーの1つに対するactivemq構成XMLがあります: amq1.xml
ここの誰かがこの問題を調べて、この設定で私が犯している間違いを教えてください。
アップデート:
コードで要求/応答をどのように実行しているかをさらに明確にするには、次のようにします。
- 私はすでにプロデューサーごとの宛先(つまり一時キュー)を使用しており、これをすべてのメッセージのreply-toヘッダーに設定しています。
- 私はすでにJMSCorrelationIDヘッダーでメッセージごとの一意の相関識別子を送信しています。
- 私の知る限り、CamelとSpringでさえ、要求/応答メカニズムに一時キューを使用しています。唯一の違いは、Spring JMSの実装では、メッセージごとに一時キューが作成および破棄されるのに対し、プロデューサーの存続期間中は一時キューが作成されることです。この一時キューは、クライアント(プロデューサー)アプリがシャットダウンしたとき、またはこの一時キューにアクティブなプロデューサーが接続されていないことを認識したときにAMQブローカーによって破棄されます。
- 私はすでにプロデューサー側の各メッセージにメッセージの有効期限を設定しているので、メッセージが長時間(60秒)キューに保持されないようになっています。
sql-server - SQLServerクラスターが毎分「SELECT@@SERVERNAME」を実行するのはなぜですか?
SQL Serverクラスターでプロファイラートレースを実行すると、毎分「SELECT@@SERVERNAME」が実行されることに気付きました。フェールオーバークラスターサービスがそれを使って何かをしたか、ネットワーク名とIPの組み合わせが正しく設定されていることを確認するためにそれを使用しただけだといつも思っていました。これは、クラスター化されていないインスタンスでは毎分発生するのではなく、フェールオーバークラスターの一部であるインスタンスでのみ発生します。
これをさらに興味深いものにしているのは、sp_dropserver / sp_addserverを使用してクラスターインスタンスの名前を上書きしたことです。クラスター化されたインスタンス名が予想されるネットワーク/インスタンスの組み合わせと一致していなくても、両方のクラスターに悪影響はありませんでした。マネージャーとSQLServerはこれで完全に問題ないようです。
これはちょうど二重に-論点先取-あなたがそれで/それについて何もするつもりがないのになぜ絶えずそれを照会するのですか?誰かがここの配管に光を当てることができますか?
rabbitmq - 複製されたキューを持つクラスターでメッセージを確認するときのRabbitMQからの「不明な配信タグ」
Rabbitは約1年使用しています。最近、複製されたメッセージキューを持つクラスターを使用するため、v2.6.1にアップグレードしました。
私のテストは、私にはウサギのバグのようなにおいがする不可解な動作にぶつかりました。これを明らかにするテストは、2ノードクラスターで機能しています。両方のノードがv2.6.1を実行しています。両方のノードにディスクがあります。どちらのノードもMacOSで実行されていますが、これが適切かどうかは疑問です。
また、テストを実行するノードでAliceを実行しています。テストでは、これを使用して、ノードの1つでstop_appをプログラムで実行します。これは、クラスターマスターに障害が発生し、スレーブが昇格してメッセージが失われないことを検証しようとしているためです。
そのため、テストには小さなスレッドプールがあり、定期的に1)メッセージを公開し、2)Rabbitマスターノードの状態を切り替えます(実行中の場合は停止、停止中の場合は開始)。他のスレッドはキューからのメッセージを消費しています。
私はパブリッシャーの確認を使用しており、コンシューマーのメッセージも確認しています(channel.basicConsume()にautoAck = falseを使用)。
マスターノードが停止すると、プロデューサーとコンシューマーの両方がShutdownSignalExceptionをキャッチしているのがわかります。彼らは、クラスターへの再接続を試みることによってこれを処理します。これは正常に機能します。再接続すると、彼らはビジネスを継続します。
時々、私が見るのは、コンシューマーがブローカーからメッセージを正常にフェッチし、ShutdownSignalExceptionを取得したときにchannel.basicAck()を呼び出していることです。
後で、コンシューマーが再接続すると、同じメッセージが再度プルダウンされます。(メッセージ本文はUUIDでタグ付けされているので、同じものであることがわかります。)今回、コンシューマーがメッセージをbasicAck()しようとすると、再びShutdownSignalExceptionが発生しますが、これには次のテキストが含まれています。 reply-text=PRECONDITION_FAILED-不明な配信タグ7"。
実際、これは、マスターがダウンしてコンシューマーが再接続する前にブローカーによってコンシューマーに提供されたものと同じ配信タグです。
グーグルは、このイベントが、消費者が同じメッセージを複数回確認しようとしていることを意味していることを示唆しています。
しかし、これはどうしてそうなるのでしょうか?最初のackが成功した場合、メッセージはブローカーのキューから削除されているはずであり、コンシューマーには同じメッセージが再び表示されないはずです。
それでも、最初のackが成功しなかった場合、消費者はメッセージを再ackしようとしたことでうんざりするべきではありません。
これを見た人はいますか?Rabbitの複製されたキューのバグのような匂いがしますが、私はまだRabbitを初めて使用しているので、クラスター化されたブローカーからの消費にはまだ微妙な点があると信じています。
ありがとう、-スティーブ
java - Java 用の分散型クラスタリング ライブラリ
ネットワークに安全な分散型レプリケーション ベースの分散システムを開発しようとしています。次の要件を持つ Java ライブラリを探しています。
ライブラリは、n 個のノードを分散型 (マスターまたはスレーブなし) で初期化できる必要があります。起動時にネットワーク障害から回復できる必要があります。例: 5 つのノードでネットワークを開始しようとしましたが、開始できるのは 3 つだけです。
初期化すると、ノードの損失を検出できるはずです。ユーザーに通知して、ユーザーがアプリケーションの前面でいくつかの修復手順を実行し、そこから回復できるようにします。新しいノードや失敗したノードがクラスターに再び参加することについては心配していません。でも、それもサポートしてくれればそれでいい。
P2P 通信を許可する必要があります。効率的な P2P とマルチキャストの両方をサポートできれば、それは非常に良いことです。
Aleph のようにノード間で Runnable メッセージとシリアライズ可能なオブジェクトを送信できるようにします。Alepha は良いものですが、ノードの障害/回復はサポートしていません。
基本的に、アクティブなノードのリストに基づいてノードの動的クォーラムを作成し、異なるクォーラムでオブジェクトを複製します。私のフレームワークは、ユーザーがこれらの定足数を話し、オブジェクトにアクセスできるようにします。ノードに障害が発生した場合、アクティブなノードの新しいリストでクォーラムを再構築する必要があります。クォーラム アルゴリズムに集中し、ネットワーク機能のエネルギーを節約したい。この目的に適したライブラリを提案してください。同様の定足数ソリューションをご存知の場合は、それも参照してください。
session - Tomcat クラスタリングはセッション複製の唯一の方法ですか?
フロントエンドのロードバランサーとしてApacheを使用してubuntuサーバーでテストTomcat Clustering
しました。session replication
私のテスト経験から、Tomcat クラスタリングを使用しない方がよいと思いますが、各ノードをスタンドアロンとして実行し、セッション レプリケーションを使用せずにお互いを認識しないようにする方がよいと言えます。速度が遅く、Tomcat サービスの起動に時間がかかり、より多くのメモリを消費すると感じたからです。また、FarmDeployer
展開では常に信頼できるとは限らず、構成全体を<Host></Host>
要素の下に配置して、ファーム デプロイヤーが機能するようにし、各仮想ホスティングと巨大な server.xml ファイルを配置する必要があります。以下は、私が使用したノードの 1 つからのクラスター構成の tomcat 仮想ホスティングです。
Tomcat クラスタリングは本番環境での使用に適していますか、それともセッション レプリケーションの別の方法はありますか? または、上記の構成で微調整できるものが欠けていますか?
どんなアイデアでも大歓迎です。ありがとう!
glassfish-3 - Glassfish 3.1.1 クラスター セッションのレプリケーション
Glassfish 3.1.1 オープン ソース エディションでのセッション レプリケーションに問題があります。クラスタには 2 つの物理サーバーが含まれています。最初のサーバーには DAS とインスタンス 1 があります。2 番目の物理サーバーにはインスタンス 2 があります。両方のサーバーで Windows 7 x64 が実行されます。私はこのチュートリアルに従っています:
http://javadude.wordpress.com/2011/05/12/glassfish-3-1-%E2%80%93-clustering-tutorial-part2-sessions/
セッション レプリケーションがいつ機能するかを理解する限り、両方の物理インスタンスの Web アプリにアクセスすると、同じセッションが存在するはずです。したがって、インスタンス 1 にログインすると、インスタンス 2 にも自動的にログインするはずです。これは正しいですか?
この問題を解決する方法を知っている人はいますか?
前もって感謝します。