0

アップデート:

基本的には、サーバーAのサービスにデータベースまたはデータテーブルに直接書き込むようにします。サービスにProperties、ビジネスロジック内の一連の値を割り当てさせます。すべての計算とデータアクセスがサーバーBで直接実行されるようにします。

明確ではなかったかもしれませんが、サーバーAはサービスを消費しているクライアントです。


ですから、私には独特の難問があります。それが、この特定の問題を処理するための標準的な方法です。現在、サービスまたは内部ロジックを使用するオプションに直面しています。シナリオ:

  • 2台のサーバー
  • サーバーA:サーバーBにリクエストをプッシュします。
  • サーバーB:これらの要求と変数を受け取り、ビジネスロジックを実装します。
  • サーバーB:とにかくリレーショナルデータアクセスを作成するので、ワークロードが2倍になります。

ジレンマは、これを処理するための標準的な方法または最善の方法がわからないことです。つまり、サーバーAのデータマップをデータベースに直接接続する方がよいのでしょうか。または、サーバーAをプロパティに保存してから、内部ロジックに処理させる方が実行可能ですか?

私が求めている理由は、明らかに解決策1であり、開発は迅速になりますが、将来的に問題が発生したり、パフォーマンスが低下したりする可能性があります。

そのような:

  • サーバーB:データテーブルを永続的に埋めます
  • サーバーB:この時点でのすべての永続性は、データベースからのデータの独自の取得によるものです。
  • プロジェクトの成長に伴い、リファクタリングが困難になる可能性があります。

これらが私の最初の懸念事項であるため、私はオプション2に傾倒していました。しかし、私が述べたように、私の考え方が規範または標準に従っているかどうかはわかりません。

これが議論と見なされるのを避けるために;

オプション1の欠点は、複雑さが増すにつれてプロジェクトの流動性に影響を与える傾向がありますか?データアクセス層に直接アクセスするためのより良い共通性を実装できるので、オプション2の実装はより実現可能でしょうか?

その助けに感謝します、うまくいけば、私はこれが理にかなっているところに応じて自分自身を明確に表現しました。そうでない場合はコメントを投げてください。それに応じて編集します。

4

1 に答える 1

0

ある程度「場合による」。特定の機能の観点からは、機能するものは何でも正しいです。

多くの場合、特定の実装を制限またはガイドする可能性のある、機能しない、または設計上の要件が多数あります。たとえば、設計がサービス指向 (SOA) であると想定されている場合、各サーバーは自律的である必要があります。つまり、データベースを共有すべきではありません (スキーマを共有すべきではありません) このような場合、メッセージ指向は一般的に使用するのに適したパターンです。コンシューマー/プロデューサー パターンや、キューやサービス バスなどのメッセージ指向ミドルウェアのようなものを見たいと思うかもしれません。この場合、サーバー A はメッセージ (コマンド) をサーバー B にプッシュし、サーバー B がそれを処理します。リクエスト/リプライ パターンを使用して、サーバー A に「リプライ」を返すこともできます。または、サーバー B が単に別のメッセージ (イベント) を A に送り返して、作業が完了したことを伝えることもできます。

アップデート:

サーバー B が使用する「データ」は、メッセージで B から完全に送信されます。

于 2013-03-12T17:49:52.090 に答える