0

2 台のサーバーを備えた運用環境があります。ユーザーがデータを送信するページがあり、保存をクリックすると、送信された情報でデータベースが更新されます。これが発生した後、GET 要求を 2 つのサーバーに送信する必要があります。これらのリクエストは基本的にメソッドを実行して、更新されたデータを取得し、メモリに保存します。jQuery を使用して、次のように URL を呼び出しています。

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot1/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot2/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS1/contextRoot3/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot1/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot2/servlet1?param=value&param2=value2'<br />
});

$.ajax({<br />
    type : "GET",<br />
    url : 'http://IP_ADDRESS2/contextRoot3/servlet1?param=value&param2=value2'<br />
});

マシンの IP アドレスを使用する必要があるのは、ロード バランサーがあるためです。ロード バランサーは、ドメインへのリクエストを受け取ったときに、最も使用されていないマシンにリクエストを転送します。また、jQuery が 6 つの ajax リクエストを実行しないことも確信しています。jQueryとクロスドメイン制約にも問題があります。jQuery-xdomain-ajax.js を使用してみましたが、がらくたです (私にはうまくいきませんでした)。私は一種の解決策を持っていますが、より良い解決策があるかどうか疑問に思っています。私の解決策は、ポップアップを開いて、他の 3 つの ajax リクエストを他のサーバーに送信することです。リクエストを頻繁に呼び出す外部プロセスを持つことはできません。

2 つのアプリ サーバーは JBoss で、Web サーバーは Apache
です。1 つのデータベース サーバーは MySQL
です。OS は、アプリ サーバーとデータベース サーバーの Linux です。

どんな助けでも大歓迎です。

4

1 に答える 1

0

一部のデータをメモリストアに配置する必要がある場合は、JBossを7として使用する分散キャッシュバンドルのInfinispanを使用する必要があります。

このドキュメントでは、コンテナを作成する方法と、インジェクションを介してInifinspanキャッシュにアクセスする方法を説明しています。

Inifinspanを使用すると、各JBossノードが同じ共有キャッシュにアクセスできるようになり、スケーラブルで可用性の高いソリューションが得られます。

于 2012-08-31T20:22:07.323 に答える