問題タブ [load-balancing]
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.
erlang - Erlang を使用して、クラスター間で負荷を分散するにはどうすればよいですか?
スレーブ/プール モジュールを見ていましたが、私が望むものと似ているように見えますが、アプリケーションに単一障害点があるようにも見えます (マスター ノードがダウンした場合)。
クライアントには、接続を受け入れるゲートウェイのリストがあり (フォールバックのために - すべて同じことを行います)、クライアントによってランダムに 1 つが選択されます。クライアントが接続すると、すべてのノードが検査され、負荷が最小のノードが特定され、負荷が最小のサーバーの IP がクライアントに戻されます。その後、クライアントはこのサーバーに接続し、そこですべてが実行されます。
要約すると、すべてのノードが両方のゲートウェイとして機能し、クライアントの要求を実際に処理する必要があります。ロード バランシングは、クライアントが最初に接続したときにのみ実行されます。実際のパケットはすべて、クライアントの「ホーム」ノードで処理されます。
どうすればいいですか?
proxy - DNS を 1 か所に保持します。そこにはどのような可能性がありますか?
一部の顧客向けにいくつかの Web サイトをホストしています。したがって、基本的に彼らが行うことは、A レコードを私のサーバーの IP に変更することであり、すべてが正常に機能します。
サーバーをアップグレードしたいのですが、もちろんクライアントは A レコードを変更する必要があります。
したがって、私が将来的に望むのは、A レコードの変更で顧客を悩ませることなく、サーバーの選択に柔軟性を持たせることです。
基本的に素晴らしいのは、信頼性が高く、A レコードを新しいサーバーにリダイレクトできる優れたサービスです。また、2 台目のサーバーをロード バランサーとして使用することも考えました。
これらのソリューションのいずれかで良い経験をした人、または他のアイデアを持っている人はいますか?
architecture - アーキテクチャ パターン Pub/Sub スケーリングとディザスタ リカバリ
JMS 準拠の pub/sub インフラストラクチャを介してメッセージをブロードキャストするソース システムを用意します。パブリッシュされたメッセージの大部分では、サブスクライバーは、メッセージ内のデータで画面を更新する GUI アプリケーションになります。
ただし、サブスクライバーの 1 つは翻訳サービスになります。公開された特定のメッセージについては、翻訳サービスがメッセージを別の形式に変換し、企業の別の部門が所有するセカンダリ メッセージング インフラストラクチャに公開します。
翻訳サービスをスケールアウトして、理想的にはアクティブ-アクティブ フォールト トレランスを提供するにはどうすればよいですか? いくつかのメモ:
- メッセージは、セカンダリ メッセージング インフラストラクチャに順番に公開する必要があります。
- メッセージは、セカンダリ メッセージング インフラストラクチャに一度だけ公開する必要があります。
基本的に、1 人の翻訳サービス加入者だけがメッセージに応答するようにするにはどうすればよいですか? キューベースのシステムに切り替える必要がありますか (ただし、GUI には引き続き pub/sub セマンティクスが必要です)?
翻訳サービスは、Windows Server 2003 でホストされる .Net 3.5 アプリケーションに賭けることに注意してください。F5 Network の BigIP LTM/GTM が利用可能です。
詳細が必要な場合は、質問/コメントしてください。
前もって感謝します。
ssl - ロードバランサーの背後にある SSL 接続を決定する
ここでベストプラクティスを探しています。ロード バランサー レベルで SSL 接続を処理するため、ロード バランサーから Web サーバーへのすべての接続は http です。すべての接続は http を介して行われるため、クライアントが Web サーバーに対してどのような接続を行っているかを知る方法はありません。現在、2 つの解決策があります。1 つは、ロード バランサーで URL 文字列にポート番号を追加して、リクエストの種類を判断できるようにすることです (例: http の場合は 80、https の場合は 443)。もう 1 つの解決策は、ロード バランサーが https 要求を取得するときに特別なヘッダーを追加して、Web サーバーが接続の種類を認識できるようにすることです。
両方のソリューションに短所がありますか? SSL を Web サーバー レベルではなくロード バランサー レベルで適用することに関するベスト プラクティスはありますか?
unix - 負荷分散されたサーバー間でパスワードを同期するために使用できるオプションは何ですか?
特定のボックスに telnet で接続するときに使用できる UNIX マシンがいくつかあります。passwd ファイルは共有マウント上にありません (いずれにせよ、それらをマウントすることがどれほど安全かはわかりません)。最終的な結果として、1 つのボックスでパスワードを変更すると、2 番目のボックスにログインしたときにパスワードが無効であることが通知されます。両方のインスタンスで telnet servername を入力したため、これはエンド ユーザーには意味がありません。この状況を解決するのに役立つ実用的な経験、アドバイス、または指針はありますか?
環境に含まれるもの
- AIX 5.3、5.2、5.1、4.3
- HP 11 11.11 11.23 11.23I
- 10日
- Linux
アップデート:
1 つを除くすべてのボックスで passwd を無効にすることを検討しています。passwd は、制御パスワード サーバーへのリモート呼び出しにするか、パスワードを変更するためにどのマシンに移動するかをユーザーに明示的に伝えることができます。
アップデート:
IBM の製品は面白そうですが、Centrify を使った経験のある人はいますか?
考え?
sql - サーバーファームでSQLセッション状態を使用してセッション終了イベントをシミュレートする方法
SQL セッション状態を使用している場合、セッション終了イベントは使用できません。このイベントを使用する既存のアプリケーションがありますが、アプリケーション用のサーバー ファームをセットアップできるように、それを SQL セッション状態に切り替える必要があります。インプロセス セッション状態を引き続き使用できるように、ロード バランサーで「スティッキー セッション」を使用したいと考えていましたが、それを機能させることができませんでした。
誰かが同様の課題に直面したことがありますか、または何かアイデアがありますか?
ありがとう。
sql-server - SQL Server クラスタリング用のデータベースを準備する
今後数か月以内に SQL Server 2005 クラスターを実装する予定です。これを達成しようとするときに、データベース開発者としてどのような手順/予防措置を講じる必要があるか知りたいですか? ado.net コード (フロント エンド) やストアド プロシージャなどを変更する必要はありますか? 従うべきベストプラクティスはありますか?
私がこの質問をしている理由は、asp.net 負荷分散の場合、セッション/アプリケーション/キャッシュのすべてのコードが負荷分散環境に準拠していることを確認する必要があるためです。(したがって、インプロセス セッションを使用している場合は、負荷分散された環境で動作するようにそのコードを書き直す必要があります)。これは Web サーバー レベルです。データベース サーバー レベルでスケールアウトしようとするときに、正しいことをしたかっただけです。
この質問がばかげている場合は申し訳ありません。この件に関する私の限られた知識を許してください:-)
asp.net - 共有ドライブからホストされている Web サイトのサーバー固有の web.config
背景情報: ファイル レプリケーションは不十分です
現在、大規模でトラフィックの多い ASP.NET Web アプリケーションが、8 つの異なる IIS サーバー間で負荷分散されています。サイトの性質上、.aspx ファイルと .ascx コントロールへのマイナーな変更は 1 日を通して頻繁に発生し、テストされてライブに公開された後、定期的に xcopy 展開を通じて各パブリック Web サーバーにレプリケートされます。 10分。
もちろん、これは非常に非効率的です。各サーバーにはサイト全体の冗長コピーが必要であり、10 分間の公開の遅れをなくしたいと考えています。
可能な改善: 共有ストレージからのホスティング
iSCSI インターフェースを備えた集中型ストレージを使用してサイト全体を集中的にホストするオプションがあり、各サーバーはリモート ストレージがローカル ドライブであると認識しています。パブリッシュは瞬時にシステム全体で行われます。
注: UNC 共有からドライブをホストすることはできません。サイト構造には非常に多くの異なるディレクトリがあり、それぞれが変更を監視するために ASP.NET の FileSystemWatcher を必要とするため、SMB の最大コマンド数にすぐに達してしまいます。はい、MaxCmds および MaxMpxCt レジストリ設定については把握しています。
問題: Web.config の変更が大規模な再コンパイルを引き起こす
私たちが予見する問題は、ファイル システム構造に特定の変更を加えると、コンパイルされたほぼすべての .aspx または .ascx を再コンパイルする必要が生じ、要求がキューに入れられ、サーバーがダウンしていると認識される可能性があることです。ほとんどのリソースはシステム全体で使用されるわけではないため、変更時にそれらを再コンパイルしてもリソースはほとんど変化しません。サイトのすべてのページで使用されるグローバル マスター ページが原因である可能性がありますが、これはコードで簡単に管理できます。
主な原因は web.config ファイルです。web.config ファイルを変更すると、Web アプリケーション全体がリサイクルされ、再コンパイルが発生します。そのため、現在、web.config の変更はレプリケートされません。web.config を変更する場合は、Web サーバーをロード バランサーから切り離し、変更を適用 (およびテスト) してから、ロード バランサーに戻す前にサーバーをジャンク リクエストでウォームアップする必要があります。
ただし、Web アプリケーションの残りのディレクトリ構造と同様に、web.config ファイルが集中ストレージに配置されている場合、ファイルのコピーは 1 つしかなく、個々のサーバーにパッチを適用してウォームアップすることはできません。
質問
ASP.NET Web アプリケーションが Web.config という名前のファイル以外のソースから行進命令を取得する方法はありますか?
サーバーごとに 1 つのファイルが存在するのが理想的です。たとえば、次のようになります。
- default.aspx
- グローバル.asax
- Web-ServerA.config
- Web-ServerB.config
- ...
- Web-ServerN.config
とにかく「web.config」という名前はどこに定義されていますか? サーバーごとに設定できるレジストリ設定はありますか? 使用するファイルを指定するために、machine.config またはグローバル web.config で作成できるエントリはありますか?
範囲外のもの
明確にするために、デバッグ、テスト、およびライブ用に異なる AppSettings を使用する方法を尋ねているわけではありません。これをカバーする他のトピックがあり、ほとんどの場合、すべての web.configs は同じです。それらを変える必要があるのは、更新が実行されているときだけです。
appSettings 情報には web.config を使用していません。これは、アセンブリ参照、httpHandler 定義、およびデータベース化できないその他の system.web 設定など、非常に重要なもののためのものです。
アップデート
レジストリで Web.config を検索してみましたが、最近 web.config ファイルを編集したことを示すアプリケーション以外には何も見つかりませんでした。そこに助けはありません。
.net - 負荷分散されたサーバー (ASP.Net) 全体でのキャッシュの選択的クリア
負荷分散された 2 つのサーバーで実行される Web サイトがあります。ASP.Net キャッシュを使用して、使用率の高いデータをキャッシュすることでパフォーマンスを向上させます。しかし、時々そのデータが変更されます。その場合、負荷分散されたサーバーの両方で関連するキャッシュ項目をクリアする必要があります。これを行う方法について、簡単に実装できる提案を誰かが持っていますか?
これを管理するソフトウェアが世の中にあることは知っています (Microsoft Velocity)。また、別の状態サーバーなどを使用するための他のオプションがあることも知っています。今のところ、サーバー全体で特定のキャッシュ アイテムをクリアするための単純なメカニズムだけが必要です。
提案をありがとう。