0

JavaWebアプリケーションデータベースサーバーが存在するサーバーがあります。

現在、私のWebアプリのクライアントには2つのタイプがあります。

  • ClientType1
  • ClientType2

どちらもデータベースにアクセスできます。

ClientType1は、データをデータベースに格納します。

ClientType2は、データベースからデータを取得します。

ただし、ClientType2がStartと言っ たときに、 ClientType1はデータベースへのデータの保存を開始する必要があります。

同様に、 ClientType2がStopと言った場合、 ClientType1はデータベースへのデータの保存を停止する必要があります

================================================== =========================

Q1。この問題の解決策は何ですか?

  • これが私が考えたアプローチです:

  • ステータスStartまたはStopを示す1つの列を持つテーブルをデータベースに作成します。この列の値は、ClientType2で設定する必要があります。ClientType1は、このテーブルからステータスを取得するためにデータベースにクエリを送信し続け、ステータスに従って操作を実行します。

  • サーバーがClientType1との接続を維持し、 ClientType2からコマンド(開始または停止)を受信するたびにサーバーに要求を送信するServerPushアプローチを適用します。このアプローチの問題は、サーバーで開いているソケットの数は、番号が増えるにつれて増加します。ClientType1

4

2 に答える 2

0

私は、データベースを介したプロセス間通信が優れたアプローチであるとは考えていません。典型的なシナリオは、クライアントがサーバーに自分自身を登録し、ソケットベースのメカニズムを使用してメッセージを受信できるようにすることです。

その後、クライアントは次のいずれかを実行できます。

  • サーバーに代わってデータベース操作を実行するようにサーバーに依頼します
  • データベースへのアクセスを要求する

開いた接続を維持することが問題となるクライアントが多数ある場合は、サーバーと通信する必要があるたびに新しい接続を開始するか、サーバーにポーリング可能な何らかのRESTAPIなどをサーバーに提供させることができます。

于 2011-03-20T11:45:47.007 に答える
0

これには一種の Ajax を使用する必要があります。これは、「サーバーがクライアントを呼び出すことができる」ことを抽象化するためです。

単一の接続を開いたままにし、この接続を介して複数のことを実行できるライブラリを選択してください。

于 2011-03-20T11:51:52.447 に答える